第 2 章 .NET Core 和 ASP.NET Core
2.1 .NET Core 簡介
.NET Core 是一個通用的開發(fā)平臺,最重要的特點是跨平臺,同時也是一個開源平臺
.NET Core 包含以下幾部分內(nèi)容:
- CoreCLR:它是 .NET Core 的運行時,包含垃圾回收器、JIT 編輯器、原生數(shù)據(jù)類型、本機(jī)交互操作及底層類
- CoreFX:它是 .NET Core 的基礎(chǔ)類庫,實現(xiàn)了 .NET Standard,包含集合、文件系統(tǒng)、JSON、異步等API
- Roslyn 編輯器:用于將 C# 或 VB.NET 代碼編譯為程序集
- .NET Core CLI 工具:用于構(gòu)建 .NET Core 應(yīng)用程序和類庫
.NET Core 采用包化的管理方式,應(yīng)用程序只需要獲取需要的組件即可
2.2 .NET Standard 簡介
.NET Standard 是一套 .NET 規(guī)范或標(biāo)準(zhǔn),它定義了所有 .NET 平臺都應(yīng)該實現(xiàn)的接口
.NET 平臺包括 .NET Core、.NET Framework、Xamarin
每個平臺支持不同的應(yīng)用模型,而且都基于相應(yīng)的基礎(chǔ)類庫,通過 .NET Standard 可以實現(xiàn)類庫共享
.NET Standard 2.0 的 API 主要包括以下幾個方面:
- IO
- XML
- Serialization
- Threading
- Data
- Networking
- Core
.NET Standard 2.1 新增3000多個 API,主要包括 Span、ValueTask、ValueTask、DbProviderFactories 等
2.3 ASP.NET Core 簡介
ASP.NET Core 是免費、開源、高性能而且跨平臺的 Web 框架,用來構(gòu)建 Web 應(yīng)用程序
ASP.NET Core 具有以下優(yōu)點:
- 跨平臺,能夠在 Windows、macOS 和 Linux 系統(tǒng)上開發(fā)、編譯和運行
- 統(tǒng)一 Web UI 與 Web API 開發(fā)
- 集成新式客戶端框架和開發(fā)工作流
- 基于環(huán)境配置以及云就緒配置
- 內(nèi)置依賴注入
- 輕型的高性能模塊化 HTTP 請求管道
- 能夠在 IIS、Nginx、Apache 和 Docker 上進(jìn)行托管或者在當(dāng)前進(jìn)程內(nèi)自托管
- 當(dāng)目標(biāo)框架為 .NET Core 時,支持并行應(yīng)用版本控制
- 簡化新式 Web 開發(fā)工具
- 開源和以社區(qū)為中心
ASP.NET Core 2.1 新增特性
- SignalR
- HTTPS
- Razor 類庫
- [ApiController] 特性和 ActionResult 類
- Identity UI 類庫
- Microsoft.AspNetCore.App
ASP.NET Core 2.2 新增特性
- IIS 進(jìn)程內(nèi)托管
- HTTP/2 支持
- OpenAPI 分析器和約定
- Kestrel 配置
- 運行狀況檢查
- SignalR Java 客戶端
- CORS 改進(jìn)
2.4 設(shè)置開發(fā)環(huán)境
.NET Core Runtime 與 SDK 的區(qū)別:
- .NET Core Runtime 僅包含 .NET Core 應(yīng)用程序運行所需要的資源
- .NET Core SDK 不僅包含了 .NET Core Runtime,也包含了開發(fā)程序時所依賴的庫文件以及 SDK 工具等
.NET Core CLI 就是 .NET Core 命令行界面,它是一個開發(fā) .NET Core 應(yīng)用程序的跨平臺工具鏈,安裝完 SDK 之后就可以使用
.NET Core CLI 命令:
- dotnet sln
- dotnet add
- dotnet remove
- dotnet build
- dotnet run
- dotnet publish
- dotnet ef
- dotnet dev-certs https
- dotnet test
2.5 創(chuàng)建第一個 API 項目
ASP.NET Core Web 應(yīng)用程序包含以下若干文件:
- launchSetting.json:應(yīng)用程序運行配置文件,如 URL 和端口信息等
- wwwroot:用于存儲靜態(tài)文件,如圖片、CSS 和 JavaScript 等文件
- 依賴項:當(dāng)前應(yīng)用程序所依賴的 NuGet 包和 SDK
- Controllers:存儲所有控制器類文件
- appsettings.json:配置文件,用于存儲在應(yīng)用程序運行時要用到的一些配置項
- Program.cs:程序入口類,ASP.NET Core 應(yīng)用程序從這個類中的 Main 函數(shù)運行,這與控制臺程序完全一樣
- Startup.cs:應(yīng)用程序啟動時的配置類,用于配置 ASP.NET Core 應(yīng)用程序中的服務(wù)、中間件、MVC 和異常處理等
本文摘自 :https://blog.51cto.com/u