为什么你需要将代码迁移到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件事

 

相关文章
|
18天前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
3月前
|
开发框架 前端开发 JavaScript
盘点72个ASP.NET Core源码Net爱好者不容错过
盘点72个ASP.NET Core源码Net爱好者不容错过
71 0
|
3月前
|
开发框架 .NET
ASP.NET Core NET7 增加session的方法
ASP.NET Core NET7 增加session的方法
37 0
|
3月前
|
开发框架 JavaScript .NET
ASP.NET Core的超级大BUG
ASP.NET Core的超级大BUG
43 0
|
1月前
|
开发框架 人工智能 .NET
C#/.NET/.NET Core拾遗补漏合集(持续更新)
C#/.NET/.NET Core拾遗补漏合集(持续更新)
|
1月前
|
开发框架 中间件 .NET
C# .NET面试系列七:ASP.NET Core
## 第一部分:ASP.NET Core #### 1. 如何在 controller 中注入 service? 在.NET中,在ASP.NET Core应用程序中的Controller中注入服务通常使用<u>依赖注入(Dependency Injection)</u>来实现。以下是一些步骤,说明如何在Controller中注入服务: 1、创建服务 首先,确保你已经在应用程序中注册了服务。这通常在Startup.cs文件的ConfigureServices方法中完成。例如: ```c# services.AddScoped<IMyService, MyService>(); //
65 0
|
2月前
|
开发框架 前端开发 .NET
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
为了便于大家查找,特将之前开发的.Net Core相关的五大案例整理成文,共计440页,32w字,免费提供给大家,文章底部有PDF下载链接。
35 1
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
|
2月前
|
算法 BI API
C#/.NET/.NET Core优秀项目和框架2024年1月简报
C#/.NET/.NET Core优秀项目和框架2024年1月简报
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
42 0
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
100 5