尽管.NET Core众所瞩目,但是原先.NET Framework的开发脚步也从未停止。Microsoft最近发布了.NET Framework 4.7.2预览版,更新了其中的ASP.NET、ADO.NET、WCF、WPF,乃至Windows Forms。完整的发行说明提供于GitHub上。
ADO.NET
最大的改进就是支持Azure Active Directory的通用和多重身份验证(MFA,Multi-factor authentication)。此外,预览版中还修正了大量的驱动缺陷,例如XEvents丢失、SqlBulkCopy的可靠性问题等。
ASP.NET
ASP.NET中的主要改进是支持Page、Custom Handler和User Control的依赖注入。但是这些改进将如何影响设计模式和能力,具体的细节尚未公布。
另一个特性是可以控制cookies中SameSite属性。以前只能使用URL重写规则设置SameSite。
基类库(BCL,Base Class Library)
HashSet得到了大量关注,其改进包括在性能和内存占用上的改进、一种指定其默认容量的方式、TryGetValue
方法,以及用于LINQ支持的ToHashSet
扩展方法。
ConcurrentDictionary
的性能也得到了改进,并给出了新的GetOrAdd
和AddOrUpdate
方法重载。
使用.NET Core给出的代码,ReaderWriterLockSlim
通过降低写饥饿(writer starvation)的可能性和避免唤醒多个写,实现对竞争问题的更好处理。
此外还有其它一些小的性能改进,涉及DateTime、文件和目录的枚举、TextInfo、Comparer/EqualityComparer.Default、Buffer和ManualResetEventSlim。
CLR
就特性而言改进很少,但是预览版中包含了不少提高可靠性的修补程序,涉及代码生成、垃圾回收和错误恢复和报告等方面。
ClickOnce
现在支持在ClickOnce部署配置文件中启用高DPI。高DPI支持对于高分辨率显示器是必需的特性。Narrator作为一种重要的无障碍工具,现在可以和ClickOnce安装程序一起正常工作。
网络特性
对Uri、HttpClient、SmtpClient、Socket和WebSocket做了重大修正,但是没有给出新的特性。
WCF
用于诊断WCF问题的SvcTraceViewer工具在UI上做了改进,“更合乎逻辑”。其与SvcConfigEditor工具都做了改进,意在符合无障碍标准。
Windows Forms
在此次预览版中,修正了一些长期存在的软件缺陷,例如DataGridView.Dispose抛出NullReferenceException异常(编者按:希望这正是我在2008年曾报告过的缺陷)。令人惊喜的是,DataGridView具有了一项新特性,即可使用F3可更新表中的排序顺序。
更重要的是,该预览版在无障碍问题做了大量的工作,例如用于工具条的键盘无障碍支持。但是应用如果要完全使用这些改进,必须使用.NET Framework 4.7.2重新编译。
Windows Workflow
只给出了一些可靠性上的修正,并未提供新的特性。
WPF
只做了一些软件缺陷的修正,涉及内存泄漏、数据损害和崩溃等。
查看英文原文: Highlights for the Upcoming .NET Framework 4.7.2
本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-02/151081.htm