天天看點

ASP.NET Core學習之一 入門簡介

在學習之前,要先了解ASP.NET Core是什麼?為什麼?很多人學習新技術功利心很重,恨不得立馬就學會了。

其實,那樣做很不好,馬馬虎虎,聯系過程中又花費非常多的時間去解決所遇到的“問題”,是簡單的問題,對,就是簡單,就是因為覺得簡單被忽略的東西,恰恰這才是最重要的。

首先,介紹下哪裡可以獲得學習資料

英文官網,最好的文檔,英語得過硬

https://docs.microsoft.com/en-us/aspnet/core/

可惜當年英語就是馬馬虎虎過來的,是以找了以下中午翻譯,以下是中午目錄的連結

http://www.cnblogs.com/dotNETCoreSG/p/aspnetcore-index.html

 以下開始正題,主要來自dotNETCoreSG部落格,對有用的内容進行删減記錄,少花時間看一些不想看的東西

ASP.NET Core 有一些架構上的改變,不再基于 System.Web.dll 。目前它基于一系列顆粒化的,并且良好建構的 NuGet 包。這一特點能夠讓你通過僅僅包含需要的 NuGet 包的方法來優化你的應用。通過 ASP.NET Core,你可以獲得的改進:

一個統一的方式用于建構 web UI 和 web APIs

新型的輕量級的、子產品化 HTTP 請求管道

運作于 IIS 或者自宿主(self-host)于你自己的程序的能力

新的用于簡化現代 web 開發的工具

可以在 Windows 、Mac 和 Linux 上建構和運作跨平台的 ASP.NET 應用

開源并且重視社群

  一個 ASP.NET Core 應用其實就是一個在其 <code>Main</code> 方法中建立一個 web 伺服器的簡單應用程式:

<code>Main</code> 調用遵循 builder 模式的 WebHostBuilder ,用于建立一個 web 應用程式宿主。這個 builder 有些用于定義 web 伺服器 (如 <code>UseKestrel</code>)和 startup 類型( <code>UseStartup</code>)的方法。在上面的示例中,web 伺服器 Kestrel 被啟用,但是你也可以指定其它 web 伺服器。我們将會在下一節展示更多關于 <code>UseStartup</code> 的内容。<code>WebHostBuilder</code> 提供了一些可選方法,其中包括寄宿在 IIS 和 IIS Express 中的 <code>UseIISIntegration</code> 和用于指定根内容目錄的 <code>UseContentRoot</code>。<code>Build</code> 和 <code>Run</code> 方法建構了用于宿主應用程式的 <code>IWebHost</code> 然後啟動它來監聽傳入的 HTTP 請求。

 <code>WebHostBuilder</code> 的 <code>UseStartup</code> 方法為你的應用指定了 <code>Startup</code> 類。

<code>Startup</code> 類是用來定義請求處理管道和配置應用需要的服務。 <code>Startup</code> 類必須是公開的(public)并且包含如下方法:

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

<a href="https://docs.asp.net/en/latest/fundamentals/static-files.html">靜态檔案(Static files)</a>

<a href="https://docs.asp.net/en/latest/fundamentals/routing.html">路由(Routing)</a>

<a href="https://docs.asp.net/en/latest/security/authentication/index.html">身份驗證(Authentication)</a>

内容根目錄(Content root)是應用程式所用到的所有内容的根路徑,例如它的 views 和 web 内容。内容根目錄預設與宿主應用的可執行程式的應用根目錄相同;一個替代的位址可以通過 WebHostBuilder 來設定。

你的應用的Web根目錄(Web root)是你項目中所有公共的、靜态的資源,如 css、js 和 圖檔檔案的目錄。靜态檔案中間件将預設隻釋出 Web 根目錄(Web root)和其子目錄中的檔案。 Web 根目錄(Web root)預設為 /wwwroot,但是你也可以通過 WebHostBuilder 來指定另外一個位址。沒明白好處在哪裡,和以前有何不同?

你可以使用自定義或者内置的 formatters (JSON, XML)來建構完全支援内容協商的 HTTP 服務

繼續閱讀