随着 .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强企业提供服务。