为什么你需要将代码迁移到ASP.NET Core 2.0?

本文来自于:葡萄城控件技术团队博客

为什么你需要将代码迁移到ASP.NET Core 2.0?_第1张图片

随着 .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? ”

答案是肯定的。

下面就让我们看看将代码迁移到 ASP.NET Core 2.0 有哪些好处?

性能

性能提升是 ASP.NET Core 2.0 带来的最显著的改变。

随着 ASP.NET Core 2.0 中新技术和语言增强的出现,代码在编译时会自动进行优化。

这项改变能够带来的好处就是,个人不再需要更改代码。编译器会在使用新的语言增强功能进行重新编译时,对代码进行优化。

TechEmpower 发现在超过 230 个使用 Web 框架基准的框架中,ASP.NET Core 在性能上都取得了巨大的进步。

新的编码范例

ASP.NET Core 新版本的发布,引入了一种新的编码范例。新的编码范例使得基于页面的设计和编码比 Model-View-Controller 结构更加简单和容易。使用 Razor Pages 作为第一页的页面结构,能够让开发人员更加专注于用户界面。

如果你很熟悉为 MVC 配置 ASP.NET Core Startup 类,那么可以在 Startup 类中添加以下代码:

publicclassStartup

{publicvoidConfigureServices(IServiceCollection services)

{//Includes support for Razor Pages and controllers.services.AddMvc();

}publicvoidConfigure(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 2.0?_第2张图片

DbContext Pooling

许多 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 中查看应用程序的性能,也包括所有日志消息。

为什么你需要将代码迁移到ASP.NET Core 2.0?_第3张图片

Razor更新

Razor 引擎已经更新,现在已经可以使用新的 Roslyn 编译器,包括支持 C#7.1 功能,如默认表达式,推断元组名称和泛型模式匹配。要在项目中使用 C#7.1 功能,需要在项目文件中添加以下属性,然后重新加载解决方案:

latest

简化主机配置

主机配置得到了大大简化。默认的 ASP.NET Core 模板中包含了一个新的 WebHost.CreateDefaultBuilder,它会自动分配一个 Kestrel 服务器。如果 Kestrel 服务器可用,那它就会在 IIS 上运行,并且配置标准的控制台日志记录。Program.cs 文件已经简化为以下内容:

publicclassProgram

{publicstaticvoidMain(string[] args)

{

BuildWebHost(args).Run();

}publicstaticIWebHost BuildWebHost(string[] args) =>WebHost.CreateDefaultBuilder(args)

.UseStartup()

.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/

转载请注明出自:葡萄城控件

关于葡萄城

葡萄城成立于1980年,是全球最大的控件提供商,世界领先的企业应用定制工具、企业报表和商业智能解决方案提供商,为超过75%的全球财富500强企业提供服务。葡萄城于1988年在中国设立研发中心,在全球化产品的研发过程中,不断适应中国市场的本地需求,并为软件企业和各行业的信息化提供优秀的软件工具和咨询服务。

你可能感兴趣的:(为什么你需要将代码迁移到ASP.NET Core 2.0?)