即將發布的 ASP.NET Core 2.2 會有哪些新玩意兒?


今年 6 月份的時候時候 .NET 團隊就在 GitHub 公布了 ASP.NET Core 2.2 版本的 Roadmap(文末有鏈接),而前兩天 ASP.NET Core 2.2 預覽版 2 已經可以下載使用了,正式版大約會在今年年底的時候發布。

相對於 2.0 and 2.1 來說,這次更新算是一次小更新了,主要包含 Bug 修復、性能優化、增加一些小的特性、和 Merge 社區的 PR。

下面來總結一下 ASP.NET Core 2.2 有哪些新的東西。

ApiController 特性增強

ApiController 特性是 ASP.NET Core 2.1 引入的,應用在 Controller 類上,主要用來自動對 Model 進行驗證並自動響應 400 錯誤。引入 ApiController 特性后比如下面的代碼是多余的:

if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}

在版本 2.2,ApiController 特性提供了 API Explorer 元數據,可以更友好地生成 Swagger/OpenAPI 文檔。然后還增加了一些默認約定,如果代碼不符合約定,是會有建議的。比如下面的代碼:

[HttpPost("/orders")]
public ActionResult<Order> CreateOrder(OrderData orderData)
{
....
return Ok(new Order() {...});
}

會出現建議提示,通過快捷鍵 Ctrl+.,編輯器會建議你這么寫:

[HttpPost("/orders")]
[ProducesResponseType(typeof(CatalogItem),(int)HttpStatusCode.OK)]
public ActionResult<Order> CreateOrder(OrderData orderData)
{
....
return Ok(new Order() {...});
}

引入新的路由系統

會有一個叫 Dispatcher 的東西,它的設計是為了讓路由匹配更早地出現在管道中,這樣可對中間件可見,中間件通過它可以知道下一個路徑的信息。

提供調用 API 的 REPL 工具

dotnet CLI 中集成可以調用 API 的 REPL 工具。這個主要是方便快速調試 API 的,類似命令行的 curl 命令,但應該更強大。

生成調用 API 客戶端代碼 (C# 和 TypeScript)

可以根據寫好的 API 元數據,生成調用 API 的客戶端代碼(C# 和 TypeScript)。

授權服務

提供基於 OpenID 的授權服務,這個服務相當於項目的統一授權點,可用於 SPA、Native App 等。

其它

  • Kestrel 和 HttpClient 的 HTTP/2 支持。

  • 應用的健康檢查,比如內存消耗。

  • SignalR 支持使用 Java 和 C++ 鏈接。

詳情請查看官方 ASP.NET Core 2.2 Roadmap:
https://github.com/aspnet/Announcements/issues/307


免責聲明!

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



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