从ASP.NET MVC迁移到ASP.NET Core的分步指南

分步指南

这是有关将项目从ASP.NET MVC框架迁移到ASP.NET Core的实用指南。 由nopCommerce开源项目团队编写的分步说明可以轻松地应用于任何ASP.NET MVC项目。

它还描述了为什么您可能需要升级,以及为什么尚未跟上进度的项目应该考虑它。

为什么要移植到ASP.NET Core?

在继续进行从ASP.NET MVC移植到ASP.NET Core的步骤(以nopCommerce为例)之前,让我们快速概述一下此框架的优点。

ASP.NET Core已经是一个相当著名的开发框架,并进行了几次重大更新,使其相当稳定,技术先进并且可以抵抗XSRF / CSRF攻击。

跨平台是使其越来越受欢迎的显着特征之一。 从现在开始,您的Web应用程序可以在Windows和Unix环境中运行。

模块化体系结构-ASP.NET Core完全以NuGet软件包的形式提供,它允许优化应用程序,包括选定的必需软件包。 这样可以提高解决方案性能,并减少升级各个零件所需的时间。

这是第二个重要特征,它使开发人员可以更灵活地将新功能集成到其解决方案中。

性能是构建高性能应用程序的又一步。 与ASP.NET 4.6相比,ASP.NET Core每秒处理的请求数量增加了2.300%,比node.js每秒处理的请求数量增加了800%。

您可以在此处此处自行检查详细的性能测试。

每秒最佳的纯文本响应,测试环境

中间件是针对应用程序内请求的新型轻量级快速模块化管道。 中间件的每个部分处理一个HTTP请求,然后决定返回结果或传递中间件的下一部分。

这种方法使开发人员可以完全控制HTTP管道,并有助于开发应用程序的简单模块,这对于不断发展的开源项目很重要。

同样,ASP.NET Core MVC提供了简化Web开发的功能。 nopCommerce已经使用了其中的一些,例如Model-View-Controller模板,Razor语法,模型绑定和验证。 这些新功能包括:

  • 标记助手。 服务器部分代码,用于参与在Razor文件中创建和呈现HTML元素。
  • 查看组件。 一种新工具,类似于局部视图,但性能更高。 当需要重用渲染逻辑并且任务对于部分视图而言过于复杂时,nopCommerce将使用视图组件。
  • DI在视图中。 尽管视图中显示的大多数数据都来自控制器,但nopCommerce也具有视图,在这些视图中依赖注入更为方便。

当然,ASP.NET Core具有更多功能,我们仅查看了最有趣的功能。

现在,让我们考虑将应用程序移植到新框架时要牢记的几点。


移民

以下描述包含指向官方ASP.NET Core文档的大量链接,以提供有关该主题的更多详细信息,并指导首次遇到此类任务的开发人员。

步骤1.准备工具箱

您需要做的第一件事是将Visual Studio 2017升级到15.3版或更高版本,并安装最新版本的.NET Core SDK。

移植之前,建议使用.Net Portability Analyzer 。 这可能是了解从一个平台到另一个平台的劳动密集型移植的一个很好的起点。 但是,此工具不能涵盖所有问题,此过程有很多陷阱需要解决。

下面我们将描述nopCommerce项目中使用的主要步骤和解决方案。

首先也是最简单的事情是更新到项目中使用的库的链接,以便它们支持.NET Standard。

步骤2. NuGet软件包兼容性分析以支持.Net标准

如果在项目中使用NuGet软件包,请检查它们是否与.NET Core兼容。 一种方法是使用NuGetPackageExplorer工具。

第3步。.NETCore中的csproj文件的新格式

.NET Core中引入了一种用于添加对第三方程序包的引用的新方法。 添加新的类库时,需要打开主项目文件并按如下所示替换其内容:

< Project Sdk = "Microsoft.NET.Sdk" >
  < PropertyGroup >
    < TargetFramework > netcoreapp2.2 </ TargetFramework >   
  </ PropertyGroup >
  < ItemGroup >
    < PackageReference Include = "Microsoft.AspNetCore.App" Version = "2.2.6" />
    ...
  </ ItemGroup >
  ...
</ Project >

对连接的库的引用将自动加载。

有关比较project.json和CSPROJ属性的更多信息,请在 此处 此处 阅读官方文档

步骤4.命名空间更新

删除所有对System.Web的使用,并将其替换为Microsoft.AspNetCore。

步骤5.配置Startup.cs文件而不是使用global.asax

ASP.NET Core具有一种加载应用程序的新方法。 应用程序的入口点是Startup ,并且对Global.asax文件没有依赖性。 Startup在应用程序中注册中间件。 Startup必须包括Configure方法。 所需的中间件应添加到Configure的管道中。

在Startup.cs中要解决的问题:

  1. 为MVC和WebAPI请求配置中间件
  2. 配置为:
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值