雖然大多數人的注意力都集中在.NET Core上,但與原來的.NET Framework相關的工作還在繼續。.NET Framework 4.6.2正式版已於近日發布,其重點是安全和WinForms/WPF/ASP.NET/WCF相關的特性, 微軟的Stacey Haffner介紹了有關該版本的詳細信息。他還提供了一個4.6.2版本的完整變化列表以及API變化比較。微軟已經提供了Web安裝包、離線安裝包和開發者包。那些運行Windows 10並進行了周年更新的開發人員,其系統上已經安裝了4.6.2版本。
ClickOnce
當分發基於Windows Forms或WPF的應用程序時,大多數組織都會認真考慮使用ClickOnce。ClickOnce允許應用程序通過URL便捷地分發。不同於通過應用商店分發的程序,ClickOnce應用程序可以在新版本發布時自行更新。只要在服務器端做一點點工作,InfoQ上有篇2008年的文章 以單個人為單位准確地控制提供哪個版本詳細介紹怎么做。
由於ClickOnce應用程序對企業用戶而言如此重要,所以安全當然是一個關注的重點。這就是為什么運維團隊會對微軟采用TLS標准緩慢而非常地失望,之前已經爆過很多SSL 的相關漏洞。雖然TLS 1.1和TLS 1.2已分別於2006年和2008年發布,但這是第一個實際支持那些標准的.NET ClickOnce版本。
加密
首先是支持新標准。主要特性如下:
- .NET Framework 4.6.2新增DSA(數字簽名算法)X509證書支持,其密鑰長度超過FIPS 186-2 的1024位限制,支持FIPS 186-3。
- 除了支持FIPS 186-3更大的密鑰大小外,.NET Framework 4.6.2允許使用SHA-2族哈希算法(SHA256、SHA384和SHA512)計算簽名。FIPS 186-3支持由新增的類DSACng提供。
談及“在軟件和硬件設備上存儲持久化對稱密鑰”,至少是從Windows 7開始,微軟就提供了Cryptography API: Next Generation (CNG)。.NET這次更新是第一個支持它的版本。
接下來是SignedXml。顧名思義,SignedXml是W3C XML數字簽名標准的實現。.NET 4.6.2的新增特性是,SignedXml支持“RSA-SHA256、RSA-SHA384和RSA-SHA512 PKCS#1簽名方法以及SHA256、SHA384和SHA512引用摘要算法”。
WPF
當使用Windows 10時,WPF現在可以自動顯示和隱藏軟鍵盤了(即屏幕鍵盤),並且可以酌情禁用WPF手寫筆/觸摸支持。對於Windows乏善可陳的手寫筆支持,這是一項較大改進的一部分。重視高DPI問題是過去幾年中微軟推動的另外一項改進。在一個DPI比過去傳統上使用的顯示器高出許多的顯示器上運行應用程序時就會出現這些問題。另外,這還會導致圖像變小或模糊。與此相關的是多顯示器支持。即使應用程序針對一個顯示器修復了高DPI問題,當用戶有多台設置了不同DPI的顯示器時,它還是會遇到問題。過去,這可以使用本機代碼解決,但現在,微軟對可以感知每台顯示器DPI的應用程序提供了直接的.NET支持。
ASP.NET
ASP.NET Core 1.0 的相關特性也帶到了.NET Framework 4.6.2,從這里你可以看出現在微軟的開發團隊優先開發的是.NET Core ,微軟已經發布了.NET未來的願景 .NET Core全新路線圖:
我們還是回到ASP.NET 4.6.2 吧,這次主要的更新是異步和SessionStateModule 和 Output-Cache Module, 也就是說ASP.NET 4.6.2 完全支持異步化了,,包括Session和OutputCache,異步化的支持非常重要,大家都聽說過了ASP.NET Core的高性能了,是怎么做到的呢,這個就和完全異步化有很大的關系。
WCF
大家知道 .NET Core 只有WCF客戶端, 服務端還得使用.NET Framework, WCF的這次更新帶來也是安全和異步化方面支持,WCF TransportDefaults不再支持SSL3,開始用TSL 1.0 . OperationContext.Current 這個上下文訪問也支持異步了,這對性能的提升是個很大的改進。
上面我們簡要列了一下.NET Framework 4.6.2 的主要特性,從.NET 願景來說,針對.NET開發的項目非常值得升級到.NET Framework 4.6.2 ,而且.NET Framework的兼容性方面做的非常好,具體參考.NET 框架兼容性簡介,推薦大家把.NET Framework 4+應用升級到.NET Framework 4.6.2,用.NET Framework開發應用也采用.NET 4.6.2/.NET Core.