ASP.NET Core 簡(jiǎn)介

2021-11-03 09:55 更新

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

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

為何使用 ASP.NET Core

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

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

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

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

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

客戶端開發(fā)

ASP.NET Core 與常用客戶端框架和庫(kù)(包括 Razor ComponentsAngular、React 和 Bootstrap)無(wú)縫集成。 有關(guān)詳細(xì)信息,請(qǐng)參閱 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)用無(wú)法跨平臺(tái),它們僅在 Windows 上運(yùn)行。 通常,ASP.NET Core 2.x 由 .NET Standard 庫(kù)組成。使用 .NET Standard 2.0 編寫的庫(kù)在實(shí)現(xiàn) .NET Standard 2.0 的任何 .NET 平臺(tái)上運(yùn)行。

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

  • 強(qiáng)烈建議使用 .NET Framework 4.7.1 及更高版本。
  • .NET Framework 4.6.1 及更高版本。

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

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

  • 跨平臺(tái)。 在 macOS、Linux 和 Windows 上運(yùn)行。
  • 增強(qiáng)的性能
  • 并行版本控制
  • 新 API
  • 開源

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

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

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

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

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

如何下載示例

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

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

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

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

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

C#

#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode

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

C#

#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode

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

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

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

區(qū)域名稱通常包含“代碼段”一詞。 下面的示例顯示了一個(gè)名為 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 語(yǔ)句。 如果計(jì)劃運(yùn)行主題中所述的示例方案,請(qǐng)不要更改這些語(yǔ)句中的代碼。 試用其他方案時(shí),可隨時(shí)更改代碼。

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

后續(xù)步驟

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)