微軟最近發布了ASP.NET Core 1.1的預覽版,這個版本包含了多個新的中間件組件、針對Windows的WebListener服務器、Razor視圖編譯以及Azure相關的特性。
新的中間件組件和增強
在這個版本中,我們能夠在特定的控制器或action中使用中間件組件。組件可以借助新的MiddlewareFilterAttribute擔當MVC資源過濾器的角色。例如,響應壓縮和緩存這樣的功能可以配置在特定的action或控制器中,而不是配置在整個應用的級別上。
在之前的幾個版本中,URL重寫(URL rewriting)就已經成為IIS的一項特性了,它是作為一個http模塊來實現的。在這個預覽版本中,URL重寫作為一個中間件組件重新回歸了。這個組件可以配置為使用IIS標準的XML格式化規則、Apache Mod_Rewrite語法,也可以直接使用Web應用中的C#方法。
ASP.NET Core 1.1還帶來了兩個新的中間件,也就是響應緩存(response caching)和響應壓縮(response compression)。響應緩存中間件會作為ASP.NET MVC中OutputCacheAttribute的繼任者。
Razor視圖編譯
在ASP.NET MVC之前的版本中,有一種預編譯Web站點的方式,這樣的話,視圖編譯就可以在部署階段執行,而不是在運行期。通過這種方式,能夠減少部署后首次加載頁面所造成的延遲。ASP.NET Core 1.1重新帶回了預編譯Razor視圖的功能。這個視圖編譯器要添加到應用的project.json文件的“tools”部分,并且要帶有對工具包的引用。在運行package restore之后,dotnet razor-precompile命令就可以預編譯razor視圖了。
針對Windows的WebListener服務器
WebListener是構建在Windows Http Server API之上的服務器。WebListener提供了依賴于平臺的特性,比如Windows authentication、端口共享(port sharing)、結合SNI的HTTPS、基于TLS的HTTP/2(Windows 10)、直接的文件傳輸以及WebSockets的響應緩存(Windows 8)。
Azure相關的特性
AzureAppServicesIntegration包允許發送日志到Azure App Service中。要寫入的所有日志信息都會使用ILogger/ILoggerFactory抽象,在Azure門戶的App Service配置中,Diagnostics Logs區域設置了這些日志將會寫入到什么位置中。
AzureKeyVault包帶來了一個針對Azure Key Vault的配置提供者(configuration provider )。這樣的話,就允許我們在應用啟動的時候從Key Vault secrets中獲取配置,并將其放在內存之中,從而能夠使用正常的ASP.NET Core配置抽象來訪問配置數據。
ASP.NET Core引入了DataProtection,它提供了加密相關的API。這個預覽版本包含了兩個包,允許將數據保護的key(Data Protection key)存儲到Azure Storage和Redis中。這樣的話,能夠跨多個Web站點實例來共享key,也能夠在負載均衡的場景下跨多臺服務器進行共享。
查看英文原文:Microsoft Releases Asp.Net Core 1.1 Preview 1