一步一步迁移ASP.NET Core 6.0-Part1

.NET 6 发布后,我们现有的应用会逐步升级到这个版本,首当其冲的是原因的ASP.NET Core的工程,如果一步一步升级到ASP.NET Core 6.0

本文简单整理一下升级ASP.NET Core 6.0的一些常用代码示例。

一、中间件升级

   原有添加静态文件中间件的代码:

   升级ASP.NET Core 6.0的代码实现:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.UseStaticFiles();

app.Run();

二、添加终结点路由

   原有添加终结点路由的方式

升级ASP.NET Core 6.0的代码实现:

可以直接将路由添加到 WebApplication,而无需显式调用 UseEndpoints 或 UseRouting

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "ASP.NET6!");

app.Run();

三、内容根、应用名称和环境

    原有代码中内容根、应用名称和环境的设置方式:

 

   升级ASP.NET Core 6.0的代码实现:

var builder = WebApplication.CreateBuilder(new WebApplicationOptions
{
    ApplicationName = typeof(Program).Assembly.FullName,
    ContentRootPath = Directory.GetCurrentDirectory(),
    EnvironmentName = Environments.Staging,
    WebRootPath = "customwwwroot"
});

Console.WriteLine($"Application Name: {builder.Environment.ApplicationName}");
Console.WriteLine($"Environment Name: {builder.Environment.EnvironmentName}");
Console.WriteLine($"ContentRoot Path: {builder.Environment.ContentRootPath}");
Console.WriteLine($"WebRootPath: {builder.Environment.WebRootPath}");

var app = builder.Build();

 

 

  可以按环境变量或命令行更改内容根、应用程序名称和环境,

  以下显示了用于更改内容根、应用程序名称和环境的环境变量及命令行参数:

 

 四、添加配置提供程序

  原先ASP.NET Core 5.0 添加配置提供程序的代码实现,以Ini配置文件为例:

  

  升级ASP.NET Core 6.0的代码实现:

var builder = WebApplication.CreateBuilder(args);

builder.Configuration.AddIniFile("appsettings.ini");

var app = builder.Build();

 

 五、添加日志记录提供程序

    原先ASP.NET Core 5.0 添加日志记录提供程序的代码实现

    升级ASP.NET Core 6.0的代码实现:

var builder = WebApplication.CreateBuilder(args);

// Configure JSON logging to the console.
builder.Logging.AddJsonConsole();

var app = builder.Build();

 

 六、DI依赖注入管理添加、注册服务

   原先ASP.NET Core 5.0 添加一个服务的实现方式:

 

       升级ASP.NET Core 6.0的代码实现:

var builder = WebApplication.CreateBuilder(args);

// Add the memory cache services.
builder.Services.AddMemoryCache();

// Add a custom scoped service.
builder.Services.AddScoped<IOrderService, OrderServiceRepository>();
var app = builder.Build();

 

 

 迁移ASP.NET Core 6.0涉及到的内容还有一些,将在下一篇文章中陆续增加。

 

周国庆

2022/3/21