.NET 4.6.2正式发布带来众多特性

时间:2023-02-07 05:26:45

虽然大多数人的注意力都集中在.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全新路线图:

.NET 4.6.2正式发布带来众多特性

我们还是回到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.