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


一、入門簡介

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

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

1、學習資料

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

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

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

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

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

 以下開始正題,主要來自dotNETCoreSG博客,對有用的內容進行刪減記錄,少花時間看一些不想看的東西

2、什么是 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 上。

3、為什么構建 ASP.NET Core?

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

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

4.ASP.NET Core 2.x 安裝

ASP.NET Core 2.1 有兩大部分組成,一個是運行時,一個是 SDK

我們可以直接訪問下載網址 NET Core 2.1 Downloads 下載它們,比如 Windows,分別點擊左邊的兩個 Download .NET Core 2.1 SDK 和 Download .NET Core 2.1 Runtime 下載它們

5.驗證 ASP.NET Core 安裝是否正確

   在Power Shell ,輸入 dotnet --info 命令,會展示出所有.NET core版本,它是支持運行多個版本一起安裝的

 

 

二、入門基礎

1.應用程序剖析

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

using System; using Microsoft.AspNetCore.Hosting; namespace aspnetcoreapp { public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseStartup<Startup>() .Build(); host.Run(); } } }
Main 調用遵循 builder 模式的  WebHostBuilder  ,用於創建一個 web 應用程序宿主。這個 builder 有些用於定義 web 服務器 (如 UseKestrel)和 startup 類型( UseStartup)的方法。在上面的示例中,web 服務器 Kestrel 被啟用,但是你也可以指定其它 web 服務器。我們將會在下一節展示更多關於 UseStartup 的內容。WebHostBuilder 提供了一些可選方法,其中包括寄宿在 IIS 和 IIS Express 中的 UseIISIntegration 和用於指定根內容目錄的 UseContentRootBuild 和 Run 方法構建了用於宿主應用程序的 IWebHost 然后啟動它來監聽傳入的 HTTP 請求。
  WebHostBuilder 的  UseStartup 方法為你的應用指定了  Startup 類。

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

public class Startup { public void ConfigureServices(IServiceCollection services) { } public void Configure(IApplicationBuilder app) { } }
ConfigureServices 定義你的應用所使用的服務(在下面查看  服務(Services) )(例如 ASP.NET MVC Core framework、Entity Framework Core、Identity 等等)

Configure 定義你的請求管道中的 中間件(middleware)

更多內容請參考: Application Startup

服務(Services)是應用中用於通用調用的組件。服務通過依賴注入獲取並使用。 ASP.NET Core 內置了一個簡單的控制反轉(IoC) 容器,它默認支持構造器注入,並且可以方便的替換成你自己選用的 IoC 容器。由於它的松耦合特性,依賴注入(DI) 使服務在整個應用中都可以使用。例如,Logging 在你整個應用中都可用。查看 Dependency Injection 獲取更多信息。

中間件(Middleware)

在 ASP.NET Core 中,你可以使用 Middleware 構建你的請求處理管道。 ASP.NET Core 中間件為一個 HttpContext 執行異步邏輯,然后按順序調用下一個中間件或者直接終止請求。一般來說你要使用一個中間件,只需要在 Configure 方法里調用 IApplicationBuilder 上一個對應的 UseXYZ 擴展方法。

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

你也可以創建你自己的 自定義中間件

你也可以在 ASP.NET Core 中使用任何基於 OWIN 的中間件。查看 OWIN 獲取更多信息。

服務器(Servers)

ASP.NET Core 托管模式並不直接監聽請求;而是依賴於一個 HTTP server 實現來轉發請求到應用程序。這個被轉發的請求會以一組 feature 接口的形式被包裝,然后被應用程序組合到一個 HttpContext中去。 ASP.NET Core 包含了一個托管的跨平台 web 服務器,被稱為 Kestrel,它往往會被運行在一個如 IIS 或者 nginx 的生產 web 服務器之后。

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

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

配置(Configuration)

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

環境(Environments),如 “Development” 和 “Production”,是 ASP.NET Core 中的第一級概念而且它可以設置成使用環境變量。查看 Working with Multiple Environments 獲取更多信息。

使用 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)的無縫集成。查看 Client-Side Development 獲取更多信息。

 

 相關文章:

https://www.twle.cn/l/yufei/aspnetcore/dotnet-aspnet-setup-window.html

 


免責聲明!

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



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