专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > ASP

为啥你需要将代码迁移到ASP.NET Core 2.0

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
为什么你需要将代码迁移到ASP.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/

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

 

关于葡萄城

葡萄城是全球控件行业领导者,世界领先的企业应用定制工具、企业报表和商业智能解决方案提供商,为超过75%的全球财富500强企业提供服务。

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

  • ASP怎么隐藏表单

    ASP如何隐藏表单 <%if Cookies_Toy ="" then response.write "<a href='login.asp'>登录</a> <a href='reg.asp'>注册</a>" ...

  • 为何js调用css脚本后没效果

    为什么js调用css脚本后没效果 这个是css的脚本代码: body,ul,li{margin: 0; padding: 0; border: 0;} body {background: #f5f...

  • 怎么伪造post请求,求指点。

    如何伪造post请求,求指点。。。 要查询大批(也就几万个)运单的状态,那查询网站一次最多查24个,这一个个搞会搞死人的。。 有...

  • Asp.net_简略代码设置GridView自适应列宽不变形

    Asp.net_简单代码设置GridView自适应列宽不变形 动态绑定的GridView由于列数不固定,而列又太多(博主做的这个项目有150个左右的字段...

  • ASP.NET上实现AJAX注册提醒

    ASP.NET下实现AJAX注册提醒 Ajax全称是,主要是利用JavaScript实现异步的数据传输,首先说异步,异步是当前操作进行的时候,用...

  • aspnet_regiis装配出错:0x80070005 拒绝访问

    aspnet_regiis安装出错:0x80070005 拒绝访问 点击右边红色标题查看本文完整版:aspnet_regiis安装出错:0x80070005 拒绝访问安装...

  • 关于网站边框解决方法

    关于网站边框 像hao123这样的网站上的边框是着么弄的?背景图片吗?http://www.hao123.com 另外哪个素材网站有实用的这内素材 -----...

  • ! 多表分组查询统计

    求助!! 多表分组查询统计 高手们,帮帮忙! 用户表 D_user 为 ID Username GroupID 1 张三 2 2 李四 2 3 王五 ...

  • 在Paypal交付的同时,把表单的数据提交给数据库

    在Paypal提交的同时,把表单的数据提交给数据库 本帖最后由 liuyang2708 于 2012-11-20 23:14:54 编辑 在提交这个支付...

  • 虚拟目录上JavaScript不能正常执行

    虚拟目录下JavaScript不能正常执行 各位大侠好,我在同一台服务器上用两种方式部署同一个网站。 第一种方法:在IIS下直接建一个网站...

热门推荐: