隨著 .NET Core 2.0 的發(fā)布,.NET 開源跨平臺迎來了新的時代。開發(fā)者們可以選擇使用命令行、個人喜好的文本編輯器、Visual Studio 2017 15.3 和 Visual Studio Code 來開發(fā)自己的 .NET Core 2.0 項目。同時,微軟 .NET 開發(fā)工具組也宣布了 ASP.NET Core 2.0 的發(fā)布,并且此版本與 .NET Core 2.0、Visual Studio 2017 15.3 和新的 Razor Pages 頁面優(yōu)化范例兼容。相信目前技術(shù)社區(qū)中開發(fā)人員討論最多的問題就是:是否應(yīng)該將代碼遷移到 ASP.NET Core 2.0? ”
答案是肯定的。
下面就讓我們看看將代碼遷移到 ASP.NET Core 2.0 有哪些好處?
性能提升是 ASP.NET Core 2.0 帶來的最顯著的改變。
隨著 ASP.NET Core 2.0 中新技術(shù)和語言增強的出現(xiàn),代碼在編譯時會自動進行優(yōu)化。
這項改變能夠帶來的好處就是,個人不再需要更改代碼。編譯器會在使用新的語言增強功能進行重新編譯時,對代碼進行優(yōu)化。
TechEmpower 發(fā)現(xiàn)在超過 230 個使用 Web 框架基準(zhǔn)的框架中,ASP.NET Core 在性能上都取得了巨大的進步。
ASP.NET Core 新版本的發(fā)布,引入了一種新的編碼范例。新的編碼范例使得基于頁面的設(shè)計和編碼比 Model-View-Controller 結(jié)構(gòu)更加簡單和容易。使用 Razor Pages 作為第一頁的頁面結(jié)構(gòu),能夠讓開發(fā)人員更加專注于用戶界面。
如果你很熟悉為 MVC 配置 ASP.NET Core Startup 類,那么可以在 Startup 類中添加以下代碼:
public class Startup { public void ConfigureServices(IServiceCollection services) { // Includes support for Razor Pages and controllers. services.AddMvc(); } public void Configure(IApplicationBuilder app) { app.UseMvc(); } }
Startup 類中的 AddMvc 和 UseMvc 會進行配置調(diào)用并激活“Razor Pages”功能。
通過新的 PageModel 對象能夠構(gòu)建更復(fù)雜的結(jié)構(gòu)。PageModel 是 MVVM 架構(gòu)的一個概念,允許開發(fā)人員執(zhí)行方法并將屬性綁定到正在呈現(xiàn)的頁面內(nèi)容中。
ASP.NET Core 附帶的模板已被增強,不僅包括使用 MVC 模式構(gòu)建的 Web 應(yīng)用程序,還包括 Razor Pages Web 應(yīng)用程序模板,以及一系列能夠為瀏覽器構(gòu)建單頁應(yīng)用程序 (SPA)的模板。這些 SPA 模板使用 JavaScript 服務(wù)功能在服務(wù)器上將 NodeJS 嵌入到 ASP.NET Core 中,并將 JavaScript 服務(wù)器端的應(yīng)用程序作為.NET構(gòu)建過程的一部分進行編譯。
許多 ASP.NET Core 應(yīng)用程序現(xiàn)在可以通過將其 DbContext 類型的服務(wù)注冊,配置為使用預(yù)先創(chuàng)建的實例池來獲得性能提升,從而能夠避免為每個請求創(chuàng)建新的實例。
將以下代碼添加到啟動/配置服務(wù),就能啟用 DbContext pooling。
services.AddDbContextPool < BloggingContext >( options => options.UseSqlServer(connectionString) );
ASP.NET Core 2.0 在 Azure App Service 上運行時,不但無需做任何修改并且還提供集成功能,同時還能獲取 Azure Application Insights 提供的性能分析、錯誤報告和診斷結(jié)果。在 Visual Studio 2017 中,右鍵單擊 project,然后選擇“Add – Application Insights Telemetry”,應(yīng)用程序就會開始收集數(shù)據(jù)。最后可以直接在 Visual Studio 2017 中查看應(yīng)用程序的性能,也包括所有日志消息。
Razor 引擎已經(jīng)更新,現(xiàn)在已經(jīng)可以使用新的 Roslyn 編譯器,包括支持 C#7.1 功能,如默認(rèn)表達式,推斷元組名稱和泛型模式匹配。要在項目中使用 C#7.1 功能,需要在項目文件中添加以下屬性,然后重新加載解決方案:
latest
主機配置得到了大大簡化。默認(rèn)的 ASP.NET Core 模板中包含了一個新的 WebHost.CreateDefaultBuilder,它會自動分配一個 Kestrel 服務(wù)器。如果 Kestrel 服務(wù)器可用,那它就會在 IIS 上運行,并且配置標(biāo)準(zhǔn)的控制臺日志記錄。Program.cs 文件已經(jīng)簡化為以下內(nèi)容:
public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup() .Build(); }
ASP.NET Core 2.0 不但帶來了巨大的性能提升,而且該版本的更新還提供了編寫應(yīng)用程序的新方法,同時簡化了管理應(yīng)用程序的操作過程。這些都構(gòu)成了大家將代碼遷移到 ASP.NET Core 2.0 的理由。
參考文章:
https://dzone.com/articles/4-benefits-of-migrating-to-aspnet-core-20
https://blogs.msdn.microsoft.com/webdev/2017/08/14/announcing-asp-net-core-2-0/
轉(zhuǎn)載請注明出自:葡萄城控件
葡萄城是全球控件行業(yè)領(lǐng)導(dǎo)者,世界領(lǐng)先的企業(yè)應(yīng)用定制工具、企業(yè)報表和商業(yè)智能解決方案提供商,為超過75%的全球財富500強企業(yè)提供服務(wù)。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。