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擁有更少的依賴,我們的依賴管理將變得更加簡單。

本為翻譯自:ASP.NET Core 3.0 Projects Go on a Diet

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM