歡迎光臨
每天分享高質量文章

ASP.NET Core 3.0:將會擁有更少的依賴

在ASP.NET Core專案中,我們使用一個叫做Microsoft.AspNetCore.App的綜合包。它也被稱為ASP.NET Core Shared Framework,在ASP.NET Core Shared Framework之中包含了很多依賴項,它能滿足一般應用的需求。但是如果你查看它的依賴項,在ASP.NET Core3.0中它的需求在似乎變得寬鬆了。

當前版本的Microsoft.AspNetCore.App明確列出了150個依賴項,而7個月前的版本只需要144個。在這些包中,你能發現九種認證相關的包,他們分別是

  • Cookies
  • Facebook
  • Google
  • JwtBearer
  • Microsoft Account
  • OAuth
  • OpenIdConnect
  • Twitter
  • WsFederation
  • Microsoft.AspNetCore
  • Microsoft.AspNetCore.Mvc
  • Microsoft.AspNetCore.HttpsPolicy

你還能發現8個關於EFCore With SQL Server的支持包,一個用於SQL Server快取的類庫,一個EFCore診斷包,一個用於EFCore標識包等等。

在這150項依賴中,31項將被從ASP.NET Core3.0的Shared Framework中移除出去,由於它們不符合如下的新的入選標準。

(1)  依賴了Shared Framework無法提供服務的第三方代碼

(2)  程式集本身被Shared Framework所拋棄

(3)  他們實現的協議或身份認證機制十分容易發生變化(比如Facebook/Google/Twitter可能能回在明天改變它們身份認證的方式)

ASP.NET Core專案的高級工程師Nate McMaster說:“我們在2.0版本中加入了太多東西,我們正在重新調整,我們的標的是在可以預見的的時間內,這些組件是可以維護的。許多從Microsoft.AspNetCore.App中移除的程式集將以NuGet 包來提供。如果我們發現90%的人取用了相同的包,那麼這個包將有可能被納入到Shared Framework中。然而,正如在指導檔案中指出的那樣,API的使用量雖然是一項重要指標,但並不是我們考慮的唯一因素。“。

這將對現有專案有何影響?

如果你決定升級到ASP.NET Core3.0,並且在你的專案中取用了被Shared Framework排除的包,那麼你的應用將會崩潰。但是別擔心,解決這個問題只需要像使用其他NuGet 包一樣手動添加這些包到你的專案中。

專案中需要哪些包呢?

這個問題問題的答案取決於你的專案型別。如果你的專案是一個REST服務,你只需要取用下麵三個包

在Microsoft.AspNetCore中有18個直接的依賴項,Mvc中添加了13個依賴項,HttpsPolicy添加了5個。這些數字雖然不包括重覆或者間接依賴,它卻反映了Shared Framework擁有更少的依賴,我們的依賴管理將變得更加簡單。


赞(0)

分享創造快樂