隨着 .NET Core 2.0 的發佈,.NET 開源跨平臺迎來了新的時代。開發者們能夠選擇使用命令行、我的喜愛的文本編輯器、Visual Studio 2017 15.3 和 Visual Studio Code 來開發本身的 .NET Core 2.0 項目。同時,微軟 .NET 開發工具組也宣佈了 ASP.NET Core 2.0 的發佈,而且此版本與 .NET Core 2.0、Visual Studio 2017 15.3 和新的 Razor Pages 頁面優化範例兼容。相信目前技術社區中開發人員討論最多的問題就是:是否應該將代碼遷移到 ASP.NET Core 2.0? 」web
答案是確定的。瀏覽器
下面就讓咱們看看將代碼遷移到 ASP.NET Core 2.0 有哪些好處?服務器
性能提高是 ASP.NET Core 2.0 帶來的最顯著的改變。架構
隨着 ASP.NET Core 2.0 中新技術和語言加強的出現,代碼在編譯時會自動進行優化。app
這項改變可以帶來的好處就是,我的再也不須要更改代碼。編譯器會在使用新的語言加強功能進行從新編譯時,對代碼進行優化。框架
TechEmpower 發如今超過 230 個使用 Web 框架基準的框架中,ASP.NET Core 在性能上都取得了巨大的進步。編輯器
ASP.NET Core 新版本的發佈,引入了一種新的編碼範例。新的編碼範例使得基於頁面的設計和編碼比 Model-View-Controller 結構更加簡單和容易。使用 Razor Pages 做爲第一頁的頁面結構,可以讓開發人員更加專一於用戶界面。ide
若是你很熟悉爲 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 會進行配置調用並激活「Razor Pages」功能。性能
經過新的 PageModel 對象可以構建更復雜的結構。PageModel 是 MVVM 架構的一個概念,容許開發人員執行方法並將屬性綁定到正在呈現的頁面內容中。
ASP.NET Core 附帶的模板已被加強,不只包括使用 MVC 模式構建的 Web 應用程序,還包括 Razor Pages Web 應用程序模板,以及一系列可以爲瀏覽器構建單頁應用程序 (SPA)的模板。這些 SPA 模板使用 JavaScript 服務功能在服務器上將 NodeJS 嵌入到 ASP.NET Core 中,並將 JavaScript 服務器端的應用程序做爲.NET構建過程的一部分進行編譯。
許多 ASP.NET Core 應用程序如今能夠經過將其 DbContext 類型的服務註冊,配置爲使用預先建立的實例池來得到性能提高,從而可以避免爲每一個請求建立新的實例。
將如下代碼添加到啓動/配置服務,就能啓用 DbContext pooling。
services.AddDbContextPool < BloggingContext >( options => options.UseSqlServer(connectionString) );
ASP.NET Core 2.0 在 Azure App Service 上運行時,不但無需作任何修改而且還提供集成功能,同時還能獲取 Azure Application Insights 提供的性能分析、錯誤報告和診斷結果。在 Visual Studio 2017 中,右鍵單擊 project,而後選擇「Add – Application Insights Telemetry」,應用程序就會開始收集數據。最後能夠直接在 Visual Studio 2017 中查看應用程序的性能,也包括全部日誌消息。
Razor 引擎已經更新,如今已經能夠使用新的 Roslyn 編譯器,包括支持 C#7.1 功能,如默認表達式,推斷元組名稱和泛型模式匹配。要在項目中使用 C#7.1 功能,須要在項目文件中添加如下屬性,而後從新加載解決方案:
<LangVersion>latest</LangVersion>
主機配置獲得了大大簡化。默認的 ASP.NET Core 模板中包含了一個新的 WebHost.CreateDefaultBuilder,它會自動分配一個 Kestrel 服務器。若是 Kestrel 服務器可用,那它就會在 IIS 上運行,而且配置標準的控制檯日誌記錄。Program.cs 文件已經簡化爲如下內容:
public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build(); }
ASP.NET Core 2.0 不但帶來了巨大的性能提高,並且該版本的更新還提供了編寫應用程序的新方法,同時簡化了管理應用程序的操做過程。這些都構成了你們將代碼遷移到 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/
轉載請註明出自:葡萄城控件
葡萄城是全球控件行業領導者,世界領先的企業應用定製工具、企業報表和商業智能解決方案提供商,爲超過75%的全球財富500強企業提供服務。