ASP.NET Core Web開發學習筆記-1介紹篇


ASP.NET Core Web開發學習筆記-1介紹篇

給大家說聲報歉,從2012年個人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也沒有更新過。踏實的生活(曾辭職轉行后重新回來),娶妻生子,很感謝我的朋友能在最危難時刻幫助我,也很感話我的妻子對我事業的支持,希望大家保重好身體,多學習,多陪伴家人。

 一直從事.Net和 PHP 和一些不成型的前端開發,有人評論WP的失敗,是,現在這個開源的時候,如果跟不上,閉門自封,將會墜入深淵。個人認為微軟出.Net Core  為遲已晚,很多市場像Windows, CE,Phone一樣被市場冷酷的淘汰。但唯是 ASP.NET Core 是對 ASP.NET 的一次意義重大的重構。跨平台,C#語法通俗簡練,肯定效果不凡。

 懂行的人都知道,ASP.NET 易學難精,只要大神優化做的好,用好MVC,webAPI,解決高並發,在后台語言上是有很多優點的,這里就不多費話了。本篇內容是為了記錄:ASP.NET Core Web開發學習筆記遇到的總結點。

 

什么是 ASP.NET Core?

ASP.NET Core 是一個新的開源和跨平台的框架,用於構建如 Web 應用、物聯網(IoT)應用和移動后端應用等連接到互聯網的基於雲的現代應用程序。ASP.NET Core 應用可運行於 .NET Core 和完整的 .NET Framework 之上。 構建它的目的是為那些部署在雲端或者內部運行(on-premises)的應用提供一個優化的開發框架。它由最小開銷的模塊化的組件構成,因此在構建你的解決方案的同時可以保持靈活性。你可以在 Windows、Mac 和 Linux 上跨平台的開發和運行你的 ASP.NET Core 應用。 ASP.NET Core 開源在 GitHub 上。

 

通過 ASP.NET Core,你可以獲得的改進:

  • 一個統一的方式用於構建 web UI 和 web APIs
  • 集成 現代的客戶端開發框架 和開發流程
  • 一個適用於雲的,基於環境的 配置系統
  • 內置的 依賴注入
  • 新型的輕量級的、模塊化 HTTP 請求管道
  • 運行於 IIS 或者自宿主(self-host)於你自己的進程的能力
  • 基於支持真正的 side-by-side 應用程序版本化的 .NET Core 構建
  • 完全以 NuGet 包的形式發布
  • 新的用於簡化現代 web 開發的工具
  • 可以在 Windows 、Mac 和 Linux 上構建和運行跨平台的 ASP.NET 應用
  • 開源並且重視社區

 

應用程序事例

要進行開發環境和工具包安裝:

我們使用VS2015創建一個新的 ASP.NET Core 解決方案

 

 

一個 ASP.NET Core 應用其實就是一個在其 Main 方法中創建一個 web 服務器的簡單控制台應用程序:

 

 

在上面圖示中,web 服務器 Kestrel 被啟用,但是你也可以指定其它 web 服務器。(Kestrel 是一個實現了應用程序類似於IIS功能的服務器)

用於創建一個 web 應用程序宿主。這個 builder 有些用於定義 web 服務器 (如 UseKestrel)和 startup 類型( UseStartup)的方法。(startup 是一個全局啟動配置文件,用來定義請求處理管道和配置應用需要的服務。

 

ConfigureServices 方法:可定義的服務有:實現了一系列IService的IServiceCollection,如:ASP.NET MVC Core framework、Entity Framework Core、Identity 等等

Configure 方法:定義你的請求管道中的 中間件(middleware)來配置並請求和響應HTTP的管道命令

 

什么是服務(Services)

服務是應用中用於通用調用的組件。服務通過依賴注入獲取並使用。 ASP.NET Core 內置了一個簡單的控制反轉(IoC) 容器,它默認支持構造器注入,並且可以方便的替換成你自己選用的 IoC 容器。

 

 

什么是中間件(Middleware)

ASP.NET Core 中間件為一個 HttpContext 執行異步邏輯,然后按順序調用下一個中間件或者直接終止請求。一般來說你要使用一個中間件,這個中間件要完成IHttpContext的ProcessRequest方法,如果您熟悉HTTP請求管道,這個方法一般在第7-8個事件處理中。

簡單的說,這個中間件,就是您的應用程序如何實現了IHttpContext,並做了相應的request 和 response和處理。 

微軟給我們提供了哪些中間件: 

ASP.NET Core 帶來了豐富的內置中間件:

 

服務器(Servers)

ASP.NET Core 托管模式並不直接監聽請求;而是依賴於一個 HTTP server 實現來轉發請求到應用程序。

這個服務器進行監聽你的應用服務端口,並轉發以一組 feature 接口的形式來包裝后請求,然后被應用程序組合到一個 HttpContext中去。

ASP.NET Core 包含了一個托管的跨平台 web 服務器,被稱為 Kestrel,(想起來了嗎? 在)它往往會被運行在一個如 IIS 或者 nginx 的生產 web 服務器之后。

 

 

內容根目錄(Content root)

內容根目錄是應用程序所用到的所有內容的根路徑,例如它的 views 和 web 內容。內容根目錄默認與宿主應用的可執行程序的應用根目錄相同;一個替代的地址可以通過 WebHostBuilder 來設置。

Web根目錄(Web root)

你的應用的Web根目錄(Web root)是你項目中所有公共的、靜態的資源,如 css、js 和 圖片文件的目錄。靜態文件中間件將默認只發布 Web 根目錄(Web root)和其子目錄中的文件。 Web 根目錄(Web root)默認為 /wwwroot,但是你也可以通過 WebHostBuilder 來指定另外一個地址。

 

配置(Configuration)

ASP.NET Core 使用了一個新的配置模型用於處理簡單的鍵值對。新的配置模型並非基於System.Configuration 或者 web.config ;而是從一個有序的配置提供者集合拉取數據。內置的配置提供者支持多種不同的文件格式如(XML,JSON, INI)和用於支持基於環境的配置環境變量。你也可以實現你自己自定義的配置提供者。

 

環境(Environments)

環境:生產環境,DEBUG和RELEASE是一種編譯狀態,開發時在系統級開發中分了如 “Development” 和 “Production”,是 ASP.NET Core 中的第一級概念而且它可以設置成使用環境變量。

使用 ASP.NET Core MVC 構建 web UI 和 web APIs

  • 你可以使用 Model-View-Controller(MVC)模式創建優秀的並且可測試的 web 應用程序。查看MVC 和 測試
  • 你可以構建支持多種格式並且完全支持內容協商的 HTTP 服務。 查看 Formatting
  • Razor 提供了一種高效的語言用於創建 Views
  • Tag Helpers 啟用服務器端的代碼參與到 - Razor 文件的創建和 HTML 元素渲染
  • 你可以使用自定義或者內置的 formatters (JSON, XML)來構建完全支持內容協商的 HTTP 服務
  • Model Binding 模型綁定 自動的映射 HTTP 請求中的數據到 action 方法參數
  • Model Validation 模型驗證 自動的執行客戶端和服務器端驗證
  • 客戶端開發

    ASP.NET Core 在設計時已考慮到和各種客戶端框架(AngularJSKnockoutJS 和 Bootstrap)的無縫集成。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM