ASP.NET Core 3.0項目開始“瘦身”

新的ASP.NET Core項目使用名爲Microsoft.AspNetCore.App的綜合包。該包也可以稱爲“ASP.NET Core 共享框架”,其背後的基本思想是,包括一個典型的應用程序所需要的所有東西。但是,如果看看該包的依賴項,對“需要”的定義看起來相當寬鬆。

目前,Microsoft.AspNetCore.App擁有150個明確列出的依賴項,7個月前則是144項。其中有9個不同的認證提供程序包。

  • Cookies

  • Facebook

  • Google

  • JwtBearer

  • Microsoft Account

  • OAuth

  • OpenIdConnect

  • Twitter

  • WsFederation

還可以發現8個用於支持實體框架核心(Entity Framework Core)的包,其擁有SQL Server、SQL Server緩存庫、用於診斷的EF核心包、用於標識的EF核心包等等。

從這150個依賴項列表中,31個將從ASP.NET Core 3.0的共享框架中刪去,因爲它們違反了新的納入標準

(1) 依賴我們無法提供服務的第三方代碼

(2) 組件本身在3.0中被棄用

(3) 它們實施的協議或身份驗證機制極易發生變化(比如,臉書/谷歌/推特轉天就可以決定改變授權的工作方式)

ASP.NET Core項目的高級軟件工程師Nate McMaster接着說:

我們在2.0中添加了太多東西,我們正在重新調整以適應我們認爲在可預見的道路上可維護的一套東西。大多數從Microsoft.AspNetCore.App中刪除的組件仍將作爲NuGet包提供給大家。如果我們將來發現90%的客戶都引用同樣的包,那麼該包將成爲共享框架一個很好的候選項。但是,正如在指導文檔中所提到的,API的使用量是一個重要指標,但不是我們唯一考慮的因素。

對目前的項目有什麼影響?

如果你決定升級到ASP.NET Core 3.0,再使用任何不在共享框架中的包的話應用程序將會崩潰。但是,要修復也很簡單,只需要把被排除的包手動添加到你的工程中即可,就像添加任何其他Nuget樣式的依賴項一樣。

我實際需要什麼包?

這個問題的答案取決於你的應用程序實際執行的操作。但是,如果我們只考慮一個簡單的REST服務器,那麼只需要直接引用這三個包:

  • Microsoft.AspNetCore

  • Microsoft.AspNetCore.Mvc

  • Microsoft.AspNetCore.HttpsPolicy

其中的第一個是Microsoft.AspNetCore,它有18個直接依賴項。Mvc添加了自己的13個依賴項,HttpsPolicy添加了另外5個。這個數字不包括重疊或間接的依賴項,但是,仍然反映了一組更小更易管理的依賴項。

閱讀英文原文:ASP.NET Core 3.0 Projects Go on a Diet

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章