ASP.NET Core 是一個(gè)跨平臺(tái)的高性能開源框架,用于生成基于云且連接 Internet 的新式應(yīng)用程序。使用 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):
ASP.NET Core MVC 提供生成 Web API 和 Web 應(yīng)用所需的功能:
ASP.NET Core 與常用客戶端框架和庫(kù)(包括 Razor Components、Angular、React 和 Bootstrap)無(wú)縫集成。 有關(guān)詳細(xì)信息,請(qǐng)參閱 Razor Components 和“客戶端開發(fā)”下的相關(guān)主題。
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 版本上受支持:
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ì)包括:
我們正努力縮小 .NET Framework 與 .NET Core 的 API 差距。 Windows 兼容性包使數(shù)千個(gè)僅可在Windows運(yùn)行的API 可在 .NET Core 中使用。 這些 API 在 .NET Core 1.x 中不可用。
建議使用以下一系列教程和文章來(lái)介紹如何開發(fā) ASP.NET Core 應(yīng)用程序:
* 新增了在瀏覽器中完全遵循的 Web API 教程,無(wú)需安裝本地 IDE。 代碼在 Azure Cloud Shell 中運(yùn)行,并且 curl 用于測(cè)試。
很多文章和教程中都包含有示例代碼鏈接。
為了演示多個(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# 參考)。
一些示例應(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 文檔:代碼片段。
有關(guān)更多信息,請(qǐng)參見以下資源:
更多建議: