簡體   English   中英

為什么遷移到 ASP.NET Core 6 最小托管 model?

[英]Why migrate to the ASP.NET Core 6 minimal hosting model?

我正在將系統從 ASP.NET Core 5 升級到 6。我已經閱讀了新的“最小托管模型”的遷移指南

文檔說新方法是首選和推薦的,但支持舊方法 - 所以我不需要更改。 他們還 state 舊方法對“高級”場景有用,沒有提及細節。

有很多關於如何使用新方法的文檔/博客/SO 問題 - 但沒有提及原因 給出了“僅四行的應用程序”作為理由,但這不足以成為遷移工作系統的理由。

我將升級到 v6,但不確定托管 model。我或我的工作生產系統將如何受益?

如果您將生產系統遷移到新主機 model,請您分享一下是否值得的建議? 新方法的優點(和缺點)是什么? 謝謝!

新主機model最大的變化是風格的改變。 IHostBuilder上的回調已更改為更直線 model(不是添加回調然后構建主機,而是編寫代碼來配置然后構建主機)。 這使您可以在初始化和編寫命令式邏輯之間進行操作。 出現這種情況的主要方式之一是異步初始化。 您可以只編寫等待某些異步配置的代碼,然后使用其結果來添加服務。 這真的很難用回調來做,因為我們需要添加異步 Configure/ConfigureServices 和許多其他東西。 這個model就是讓你寫代碼。

遷移指南中的示例展示了如何保留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 是如何構建的非常清楚。

最后,如果您已經完全理解現有的 model 並對其進行編程,那么它實際上是一種模式更改,您可能看不到巨大的好處。這就是為什么它是可選的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM