BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

.NET Framework 4.8预览

| 作者 Jonathan Allen 关注 548 他的粉丝 ,译者 无明 关注 0 他的粉丝 发布于 2018年6月21日. 估计阅读时间: 4 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

虽然人们的大多数关注点都在.NET Core上,但经典的.NET Framework仍然在开发中。.NET 4.8的“早期访问”预览版表明了微软最关心的领域包括高DIP、可访问性和并发性。

.NET 4.8预计将于2019年发布。目前的预期是,它将在稍后的Windows 10 build 1607上运行,但这一决定并非最终结果。

Span<T>

在介绍新版本将要包含哪些内容之前,值得一提的是,最受期待的功能Span<T>不会成为此版本的一部分。据微软的Rich Lander称,

Span包含在.NET Core 2.1中。我们试图在.NET Framework 4.8中包含Span,但由于对现有应用程序的兼容性问题而决定不这么做。你可以System.Memory Nuget包中访问Span和其他相关类型。

System.Memory:https://www.nuget.org/packages/System.Memory/

高DPI

高DPI仍然是.NET的焦点。随着显示器分辨率不断提高,应用程序需要放大以补偿文字和图像太小造成的无法辨认。在此版本中,ClickOnce和WinForms将迎来高DPI更新。

高DPI问题持续存在的原因有两个。首先是高分辨率显示器的可用性问题。在支持缩放的硬件变得可用之前,微软无法有效测试200%和300%的缩放比例。因此,除非显示器已经改进到一定程度,否则缩放仍然是一个问题。

另一个挑战是多监视器设置。当应用程序在不同分辨率的显示器之间移动时,必须重新计算缩放并换出图像。更糟糕的是,应用程序可能会在两个或多个具有不同分辨率的显示器上发生重叠。解决这种情况需要各种妥协,结果并不总是令人满意。

性能

除了通常的内部调整(如减少AsyncLocal的内存使用量或微调旋转锁)之外,此版本还修复了SqlDataReader.ReadAsync实际上不是异步执行的问题。

死锁和静态条件

鉴于.NET Framework日趋成熟,我们可能会惊奇地发现,许多核心库仍存在竞态条件和死锁。以下是与并发相关问题的部分列表。

  • CLR:在并发调用新动态方法可能发生的潜在崩溃
  • CLR:调用EventSource的Dispose()时可能发生死锁
  • 网络:在锁定NetworkChanged监听器和用户回调时,NetworkInformation.NetworkChange可能会发生死锁
  • WCF:在调用Set()之前关闭WaitHandle,可能在AsyncResult中存在竞态条件
  • WCF:当中止连接导致从CleanupChannelCollections中抛出ObjectDisposedException时可能发生的竟态条件
  • 工作流程:在极端使用条件下(与MSDTC的大量连接),单个线程可能会无限期地持有CriticalSection
  • 用户界面可访问性(UIA)

UIA的关注点仍然是WinForms获得新的UIA行为,以及修复UIA和WPF中UIA错误。(很多非UIA错误也在二者中得到修复。)

有关变更的完整列表,请参阅.NET 4.8发布说明预览版本身可以通过.NET博客获得。

查看英文原文An early Look at .NET 4.8

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT