手机版
你好,游客 登录 注册
背景:
阅读新闻

.NET Framework 4.8预览

[日期:2018-06-21] 来源:infoq.com  作者:Jonathan Allen ,译者 无明 [字体: ]

虽然人们的大多数关注点都在.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

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2018-06/152933.htm

linux
相关资讯       .NET Framework   .NET Framework 4.8 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款