ASP.NET Core 簡介

2021-11-03 09:55 更新

ASP.NET Core 是一個跨平臺的高性能開源框架,用于生成基于云且連接 Internet 的新式應(yīng)用程序。使用 ASP.NET Core,您可以:

  • 創(chuàng)建 Web 應(yīng)用程序和服務(wù)、IoT 應(yīng)用和移動后端。
  • 在 Windows、macOS 和 Linux 上使用喜愛的開發(fā)工具。
  • 部署到云或本地。
  • 在 .NET Core 或 .NET Framework 上運行。

為何使用 ASP.NET Core

數(shù)百萬開發(fā)人員使用過(并將繼續(xù)使用)ASP.NET 4.x 創(chuàng)建 Web 應(yīng)用。 ASP.NET Core 是重新設(shè)計的 ASP.NET 4.x,更改了體系結(jié)構(gòu),形成了更精簡的模塊化框架。

ASP.NET Core 具有如下優(yōu)點:

  • 生成 Web UI 和 Web API 的統(tǒng)一場景。
  • 針對可測試性進行構(gòu)建。
  • Razor Pages 可以使基于頁面的編碼方式更簡單高效。
  • 能夠在 Windows、macOS 和 Linux 上進行開發(fā)和運行。
  • 開放源代碼和以社區(qū)為中心。
  • 集成新式客戶端框架和開發(fā)工作流。
  • 基于環(huán)境的云就緒配置系統(tǒng)。
  • 內(nèi)置依賴項注入。
  • 輕型的高性能模塊化 HTTP 請求管道。
  • 能夠在 IIS、Nginx、ApacheDocker 上進行托管或在自己的進程中進行自托管。
  • 定目標(biāo)到 .NET Core 時,可以使用并行應(yīng)用版本控制。
  • 簡化新式 Web 開發(fā)的工具。

使用 ASP.NET Core MVC 生成 Web API 和 Web UI

ASP.NET Core MVC 提供生成 Web API 和 Web 應(yīng)用所需的功能:

客戶端開發(fā)

ASP.NET Core 與常用客戶端框架和庫(包括 Razor ComponentsAngular、React 和 Bootstrap)無縫集成。 有關(guān)詳細信息,請參閱 Razor Components 和“客戶端開發(fā)”下的相關(guān)主題。

面向 .NET Framework 的 ASP.NET Core

ASP.NET Core 2.x 可以面向 .NET Core 或 .NET Framework。 面向 .NET Framework 的 ASP.NET Core 應(yīng)用無法跨平臺,它們僅在 Windows 上運行。 通常,ASP.NET Core 2.x 由 .NET Standard 庫組成。使用 .NET Standard 2.0 編寫的庫在實現(xiàn) .NET Standard 2.0 的任何 .NET 平臺上運行。

ASP.NET Core 2.x 在實現(xiàn) .NET Standard 2.0 的 .NET Framework 版本上受支持:

  • 強烈建議使用 .NET Framework 4.7.1 及更高版本。
  • .NET Framework 4.6.1 及更高版本。

ASP.NET Core 3.0 以及更高版本只能在 .NET Core 中運行。 有關(guān)此更改的詳細信息,請參閱 A first look at changes coming in ASP.NET Core 3.0(搶先了解 ASP.NET Core 3.0 即將推出的更改)。

面向 .NET Core 有以下幾個優(yōu)勢,并且這些優(yōu)勢會隨著每次發(fā)布增加。 與 .NET Framework 相比,.NET Core 的部分優(yōu)勢包括:

  • 跨平臺。 在 macOS、Linux 和 Windows 上運行。
  • 增強的性能
  • 并行版本控制
  • 新 API
  • 開源

我們正努力縮小 .NET Framework 與 .NET Core 的 API 差距。 Windows 兼容性包使數(shù)千個僅可在Windows運行的API 可在 .NET Core 中使用。 這些 API 在 .NET Core 1.x 中不可用。

推薦的學(xué)習(xí)路徑

建議使用以下一系列教程和文章來介紹如何開發(fā) ASP.NET Core 應(yīng)用程序:

  1. 請按照適用于要開發(fā)或維護的應(yīng)用類型的教程操作:應(yīng)用類型方案教程Web 應(yīng)用用于新的開發(fā)Razor 頁面入門Web 應(yīng)用用于維護 MVC 應(yīng)用MVC 入門Web API創(chuàng)建 Web API*實時應(yīng)用SignalR 入門
  2. 請按照介紹如何進行基本數(shù)據(jù)訪問的教程操作:方案教程用于新的開發(fā)帶 Entity Framework Core 的 Razor 頁面用于維護 MVC 應(yīng)用帶 Entity Framework Core 的 MVC
  3. 參閱適用于所有應(yīng)用類型的 ASP.NET Core 功能的概述:基礎(chǔ)知識
  4. 瀏覽目錄以了解其他感興趣的主題。

* 新增了在瀏覽器中完全遵循的 Web API 教程,無需安裝本地 IDE。 代碼在 Azure Cloud Shell 中運行,并且 curl 用于測試。

如何下載示例

很多文章和教程中都包含有示例代碼鏈接。

  1. 下載 ASP.NET 存儲庫 zip 文件。
  2. 解壓縮 Docs-master.zip 文件。
  3. 使用示例鏈接中的 URL 幫助你導(dǎo)航到示例目錄。

示例代碼中的預(yù)處理器指令

為了演示多個方案,示例應(yīng)用將使用 #define 和 #if-#else/#elif-#endif C# 語句選擇性地編譯和運行不同的示例代碼段。 對于那些利用此方法的示例,請將 C# 文件頂部的 #define 語句設(shè)置為與你想要運行的方案相關(guān)聯(lián)的符號。 一些示例要求在多個文件的頂部設(shè)置符號才能運行方案。

例如,以下 #define 符號列表指示四個方案可用(每個符號一個方案)。 當(dāng)前示例配置運行 TemplateCode 方案:

C#

#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode

若要更改示例以運行 ExpandDefault 方案,請定義 ExpandDefault 符號并保留剩余的符號處于被注釋掉的狀態(tài):

C#

#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode

若要詳細了解如何使用 C# 預(yù)處理器指令選擇性地編譯代碼段,請參閱 #define(C# 參考)和 #if(C# 參考)。

示例代碼中的區(qū)域

一些示例應(yīng)用包含由 #region 和 #endregion C# 語句包圍的代碼片段。 文檔生成系統(tǒng)會將這些區(qū)域注入到所呈現(xiàn)的文檔主題中。

區(qū)域名稱通常包含“代碼段”一詞。 下面的示例顯示了一個名為 snippet_FilterInCode 的區(qū)域:

C#

#region snippet_FilterInCode
WebHost.CreateDefaultBuilder(args)
    .UseStartup<Startup>()
    .ConfigureLogging(logging =>
        logging.AddFilter("System", LogLevel.Debug)
            .AddFilter<DebugLoggerProvider>("Microsoft", LogLevel.Trace))
            .Build();
#endregion

主題的 markdown 文件在以下行中應(yīng)用了前面的 C# 代碼段:

Markdown

[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_FilterInCode)]

你可放心忽略(或刪除)代碼兩側(cè)的 #region 和 #endregion 語句。 如果計劃運行主題中所述的示例方案,請不要更改這些語句中的代碼。 試用其他方案時,可隨時更改代碼。

有關(guān)詳細信息,請參閱參與 ASP.NET 文檔:代碼片段。

后續(xù)步驟

有關(guān)更多信息,請參見以下資源:


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號