为什么迁移到 ASP.NET Core 6 最小托管模型?
Why migrate to the ASP.NET Core 6 minimal hosting model?
我正在将系统从 ASP.NET 核心 5 升级到核心 6。我已阅读 migration guide 新的“最小托管模型”。
文档说新方法是首选和推荐的,但支持旧方法 - 所以我不需要更改。他们还表示旧方法对“高级”场景很有用,但没有提及细节。
有很多关于如何使用新方法的文档/博客/SO 问题 - 但没有提及为什么。给出了“仅四行的应用程序”作为理由,但这不足以成为迁移工作系统的理由。
我将升级到 v6,但不确定托管模式。我或我的 工作生产系统 将如何受益?
如果您将生产系统迁移到新的托管模型,能否请您分享一下是否值得的建议?新方法的优点(和缺点)是什么?谢谢!
新托管模式的最大变化是风格的变化。 IHostBuilder
上的回调已更改为更直线的模型(不是添加回调然后构建主机,而是编写代码来配置然后构建主机)。这使您可以在初始化和编写命令式逻辑之间进行操作。出现这种情况的主要方式之一是异步初始化。您可以只编写等待某些异步配置的代码,然后使用其结果来添加服务。这真的很难用回调来做,因为我们需要添加 async Configure/ConfigureServices 和许多其他东西。这个模型就是让你写代码。
迁移指南中的示例展示了如何保留 Startup
class 但仍然使用新的 WebApplicationBuilder
最能说明这一点:
using Microsoft.AspNetCore.Builder;
var builder = WebApplication.CreateBuilder(args);
var startup = new Startup(builder.Configuration);
startup.ConfigureServices(builder.Services);
var app = builder.Build();
startup.Configure(app, app.Environment);
app.Run();
何时调用这些方法以及如何构建 Startup 非常清楚。
最后,这实际上是一种模式更改,如果您已经完全理解现有模型并围绕现有模型进行编程,那么您可能看不到巨大的好处。这就是为什么它是可选的。
我正在将系统从 ASP.NET 核心 5 升级到核心 6。我已阅读 migration guide 新的“最小托管模型”。
文档说新方法是首选和推荐的,但支持旧方法 - 所以我不需要更改。他们还表示旧方法对“高级”场景很有用,但没有提及细节。
有很多关于如何使用新方法的文档/博客/SO 问题 - 但没有提及为什么。给出了“仅四行的应用程序”作为理由,但这不足以成为迁移工作系统的理由。
我将升级到 v6,但不确定托管模式。我或我的 工作生产系统 将如何受益?
如果您将生产系统迁移到新的托管模型,能否请您分享一下是否值得的建议?新方法的优点(和缺点)是什么?谢谢!
新托管模式的最大变化是风格的变化。 IHostBuilder
上的回调已更改为更直线的模型(不是添加回调然后构建主机,而是编写代码来配置然后构建主机)。这使您可以在初始化和编写命令式逻辑之间进行操作。出现这种情况的主要方式之一是异步初始化。您可以只编写等待某些异步配置的代码,然后使用其结果来添加服务。这真的很难用回调来做,因为我们需要添加 async Configure/ConfigureServices 和许多其他东西。这个模型就是让你写代码。
迁移指南中的示例展示了如何保留 Startup
class 但仍然使用新的 WebApplicationBuilder
最能说明这一点:
using Microsoft.AspNetCore.Builder;
var builder = WebApplication.CreateBuilder(args);
var startup = new Startup(builder.Configuration);
startup.ConfigureServices(builder.Services);
var app = builder.Build();
startup.Configure(app, app.Environment);
app.Run();
何时调用这些方法以及如何构建 Startup 非常清楚。
最后,这实际上是一种模式更改,如果您已经完全理解现有模型并围绕现有模型进行编程,那么您可能看不到巨大的好处。这就是为什么它是可选的。