为什么你需要将代码迁移到ASP.NET Core 2.0?-阿里云开发者社区

开发者社区> powertoolsteam> 正文

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

简介: 随着 .NET Core 2.0 的发布,.NET 开源跨平台迎来了新的时代。开发者们可以选择使用命令行、个人喜好的文本编辑器、Visual Studio 2017 15.3 和 Visual Studio Code 来开发自己的 .NET Core 2.0 项目。
+关注继续查看

随着 .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 类中添加以下代码:

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构建过程的一部分进行编译。

 

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

 

Razor更新

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/

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

 

相关阅读:

【报表福利大放送】100余套报表模板免费下载

是什么优化让 .NET Core 性能飙升?

C#开发人员应该知道的13件事

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《配置管理最佳实践》——第1章 源代码管理 1.1为什么源代码管理如此重要
源代码管理之所以如此重要是因为既要保证资产是安全的,又要允许通过受控、可靠的配置库对其进行访问。源代码管理提供了管理源代码和把工件组装成系统的工具和方法。在配置管理术语中,我们称其为配置项(CI, Configuration Item)。
1769 0
🔊代码预览超链接迁移通知
最新有小伙伴们反馈说访问文章中的超链接的时候有些不稳定或无法访问的情况,现在正在找解决办法,之后会逐步修改文章中的码预览超链接。
722 0
文章详情 PayPal 为什么从 Java 迁移到 Node.js:性能提高一倍,文件代码减少44%
大家都知道 PayPal 是另一家迁移到 Node.js 平台的大型公司,Jeff Harrell 的这篇博文 Node.js at PayPal 解释了为什么从Java迁移出来的原因:开发效率提高一倍(2个人用更少的时间干了5个人的活),性能提高一倍,代码量减少33%, 文件减少40%。
7 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
3974 0
EF6 CodeFirst代码迁移笔记
由于EF7只支持codefirst only。朕无奈被微软逼上了梁山学一下codefirst,就算是为明年做准备吧。写的这些网上大致都有,基本没啥 新内容, 迁移 使用自动迁移 Enable-Migrations –EnableAutomaticMigrations    第一次迁移 Enable-Migrations     修改表结构 Add-Migration 将基于您已经对模型所做的更改构建下一次迁移的框架。
1222 0
代码没有任何改动,为什么程序执行会有Bug?
工作中经常遇到开发不同的版本,如版本5.1、版本5.2,5.2版本是在5.1版本上的升级,会修改已有几个模块的功能或者新增功能。但对于其中一个模块M,没有做任何修改,奇怪的是,为什么5.2版本的模块M会有Bug?
410 0
git学习------&gt;从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?
最近逐步逐步的将公司的项目都从SVN往Git迁移了,但是想团队成员都能够一步到位就迁移到Git是不可能的,因为还有大部分人都还不会Git,所以整个过渡过程估计得大半年。
1549 0
+关注
powertoolsteam
经过30年来在控件领域的不断积累,葡萄城已经成为全球最大的控件提供商,旗下多款产品在国际软件行业屡获殊荣,并且在全球被数十万家企业、学校和政府机构等选用。
403
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载