即将推出.NET Framework 4.7.2 中的一些亮点

  • Jonathan Allen
  • 盖磊

2018 年 2 月 26 日

话题:.NET语言 & 开发

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

尽管.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的性能也得到了改进,并给出了新的GetOrAddAddOrUpdate方法重载。

使用.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

.NET语言 & 开发