.netFramwork迁移.net Core 关键点

先决条件:

.netCore 需要部署 .net Core SDK 2.2或者更高版本。

目标框架:

面向 .NET Framework 时,项目需要引用单个 NuGet 包(元包)。

但是如果.netCore程序则不需要,.netCore为了提升性能,在运行时已经包含了元包并且已预编译。

ASP.NET Core 中简化了 .csproj 文件格式

无需显式添加,即可将文件视作项目的一部分。 服务于大型团队时,这可减少出现 XML 合并冲突的风险。

没有对其他项目的基于 GUID 的引用,这可以提高文件的可读性。

无需在 Visual Studio 中卸载文件即可对它进行编辑:

Global.asax 文件替换为控制台程序

ASP.NET 应用程序的入口点是 Global.asax 文件。 路由配置及筛选器和区域注册等任务在 Global.asax 文件中进行处理

ASP.NET Core 使用相似的方法,但是不依赖 OWIN 处理条目。 而是通过 Program.cs Main 方法(类似于控制台应用程序)来完成,并且 Startup 会通过该处进行加载。Startup 必须包含 Configure 方法。在 Configure 中,向管道添加必要的中间件。

存储配置

Web.config 变成appsetting.json

读取方式由:

string userName = System.Web.Configuration.ConfigurationManager.AppSettings["UserName"];

string password = System.Web.Configuration.ConfigurationManager.AppSettings["Password"];

变成了:

string userName = Configuration.GetSection("AppConfiguration")["UserName"];

string password = Configuration.GetSection("AppConfiguration")["Password"];

或者:此方法的扩展项,它们可使此过程更加可靠,例如使用依存关系注入 (DI) 来加载使用这些值的服务。 DI 方法提供了一组强类型的配置对象

/ Assume AppConfiguration is a class representing a strongly-typed version of AppConfiguration section

services.Configure<AppConfiguration>(Configuration.GetSection("AppConfiguration"));

本机依存关系注入

自带了依赖注入:无需使用依赖注入库了如(Microsoft.Practices.Unity)。

注册方法:

由于依存关系注入是 ASP.NET Core 的组成部分,因此可以在 Startup.cs 的 ConfigureServices 方法中添加你的服务:

public void ConfigureServices(IServiceCollection services)

{

    // Add application services.

    services.AddTransient<IProductRepository, ProductRepository>();

}

提供静态文件

Web 开发的一个重要环节是提供客户端静态资产的功能。 HTML、CSS、Javascript 和图像是最常见的静态文件示例。 这些文件需要保存在应用(或 CDN)的发布位置中,并且需要引用它们,以便请求可以加载这些文件。 在 ASP.NET Core 中,此过程发生了变化。

在 ASP.NET 中,静态文件存储在各种目录中,并在视图中进行引用。

在 ASP.NET Core 中,静态文件存储在“Web 根”(<内容根>/wwwroot )中,除非另有配置。 通过从 Startup.Configure 调用 UseStaticFiles 扩展方法将这些文件加载到请求管道中:public void Configure(IApplicationBuilder app)

{

    app.UseStaticFiles();

}

参考文献:https://docs.microsoft.com/zh-cn/aspnet/core/migration/proper-to-2x/index?view=aspnetcore-3.1

原文地址:https://www.cnblogs.com/xiaoguozi/p/12217921.html