初看 ASP.NET Core 3.0 即將到來的變化
[翻譯] 初看 ASP.NET Core 3.0 即將到來的變化
原文:ofollow,noindex" target="_blank">A first look at changes coming in ASP.NET Core 3.0
在我們努力完成下一個 minor 版本的 ASP.NET Core 的同時,我們也在對下一個 major 版本進行更新,其中包括如何使用框架組合專案、更緊密的 .NET Core 整合以及第三方開源整合,所有這些事的目標都是為了讓您更容易、更快速地開發。有關 .NET Core 3.0 的更多內容,我們建議您檢視我們之前 關於在 Windows 上新增對 .NET Core 3.0 的 WinForms 和 WPF 支援的公告。我們將在不久的將來發布有關 ASP.NET Core 3.0 中新功能的更多詳細資訊。
包 vs 框架
歷史的原因,經過不同的版本和年代,ASP.NET Core 的專案引用和執行方式已經發生了變化。在 1.0 中,ASP.NET Core 本身就只是一個包,像引用其他 Nuget 包一樣的出現在專案。這有利有弊,
隨著時間的推移,我們已經改進了這個模型,試圖平衡模組化引用與更大且必備框架之間的優劣勢。在 2.1 中,ASP.NET Core 最終發展成為一個 .NET Core “共享框架”(就像 .NET Core 本身的基礎框架 Microsoft.NETCore.App 一樣)。ASP.NET Core 團隊成員 Nate McMaster 撰寫的這篇部落格文章 很好地解釋了共享框架的工作原理,同時也了指出當前方法的一些問題。我們在 3.0 中引入的更新旨在為所有使用者減少這些問題。
作為本次更新的一部分,將從 ASP.NET Core 3.0 共享框架中刪除一些值得注意的子元件 :
- Json.NET (Newtonsoft.Json)
- Entity Framework Core (Microsoft.EntityFrameworkCore.*)
有關在 .NET Core 中新增 JSON API 的更多詳細資訊,請參閱此公告 。對於現在仍然依賴於 Json.NET 的地方(例如 MVC 中的 JSON 格式化),我們將繼續提供該整合的軟體包,但預設將改為使用即將推出的內建 JSON API。
Entity Framework Core 將作為 3.0 中的 “純” NuGet 包釋出。這使得其釋出模式與 .NET 上的其他資料訪問庫相同,用最簡單的方式保持持續更新,提供各種 .NET 平臺的支援。注意,Entity Framework Core 移出共享框架對其作為 Microsoft 旗下開發、支援和維護的庫的狀態沒有影響,並且它將繼續被.NET Core 支援策略 所覆蓋。
充分利用 .NET Core
正如本月早些時候在 .NET 部落格上所宣佈 的那樣,由於 .NET Framework 的更新策略以及可能對現有應用程式帶來破壞,.NET Framework 將只會獲得很少的 .NET Core 的新平臺新語言特性。為了確保 ASP.NET Core 能夠充分利用 .NET Core 未來的發展改進,ASP.NET Core 將從 3.0 開始僅支援在 .NET Core 上執行 。展望未來,您可以簡單地將 ASP.NET Core 視為 .NET Core 的一部分。
今天在 .NET Framework 上使用 ASP.NET Core 的客戶可以繼續使用完全支援的 2.1 LTS 版本。2.1 的支援和服務將持續到2021年8月21日。
有關從 .NET Framework 移植到 .NET Core 的更多資訊,請參閱此文件 。
通過專注的第三方開源整合提供更多價值
與此同時,我們對 3.0 中“平臺”的構成做了更明確的區分,從該層中刪除了第三方元件,我們認識到, 許多更高層次的方案都是由已建立、有能力且支援良好的開源元件提供最佳支援的, 我們可以幫助支援這些元件更好的整合到 ASP.NET Core 應用程式中。
這種支援將採取不同的形式, 包括我們團隊構建的一流整合 API 和包、我們的工程師對現有庫的貢獻、使用這些庫的預設體驗中的專案模板、官方 ASP.NET Core上文件站點、以及處理關鍵問題和 bug 修復 (包括安全性) 的過程。
我們已經在 2.2 版本中開始了這一過程,為流行的 IdentityServer 庫開發了新的整合 ,這將幫助我們在構建 ASP.NET Core 應用程式中的 API 授權時非常簡單和實用,同時允許客戶在需要時充分利用 IdentityServer 其功能。
我們還致力於簡化構建 HTTP API 的體驗,新的API 約定和分析器 可以更輕鬆地使用流行的 Open API庫(如 Swashbuckle 和 NSwag),以及一個新的API 客戶端生成系統 ,可以非常簡單與程式碼生成器整合,例如 AutoRest 和 NSwag。
如果你對我們新的健康檢查功能 感興趣,Diagnostics.HealthChecks" rel="nofollow,noindex" target="_blank">BeatPulse 庫 的作者正在努力移植他們的庫。
我們打算將這些經驗彙集到一個新的專案模板中,以便在 2.2 釋出之後提供。
尾聲
請持續關注,我們會繼續釋出 ASP.NET Core 在 .NET Core 3.0 中的變化,包括我們在此版本中將要啟用的新功能的簡介。我們會定期在公告中釋出變更詳情和其他資訊,我們鼓勵您訂閱。