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 個。這個數字不包括重疊或間接的依賴項,但是,仍然反映了一組更小更易管理的依賴項。
原文地址:https://www.infoq.cn/article/vwCKd8jFjAh*WAPNQxmJ
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的ASP.NET Core 3.0 项目开始“瘦身”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shadow Properties之美(
- 下一篇: asp.net ajax控件工具集 Au