standard1.1.2_.Net Standard 2.1对您意味着什么

.Net Standard 2.1旨在提供一个统一的编程界面,解决不同.Net版本间的兼容性问题。它引入了新API以改善性能,如处理内存的Span类型,减少了内存复制,提升了处理数据流时的效率,尤其在微服务和JSON数据处理中。此外,新的.Net治理模型将确保新功能的引入经过审查,平衡整个.Net生态系统的利益。
摘要由CSDN通过智能技术生成

standard1.1.2

.Net现代化是一个缓慢的过程。 尽管Microsoft 在开源.Net Core中提供新的,更快的跨平台运行时并不困难,但将代码和开发人员带到新平台上却变得更加困难。

最大的问题是兼容性。 .Net Framework已有近二十年的历史了,如果要继续运行代码,则任何新版本都需要支持API和功能的遗留问题。 API实现之间的细微差异可能会导致灾难性错误,或者更糟的是,可能会在版本之间更改输出。 因此,尽管.Net Core比完整的.Net Framework更小和更快,但是为一个代码编写的代码无法在另一个代码上运行,因为没有通用的SDK。

[.Net路线图: .Net Standard 2.1中可以期待新功能 | .Net Framework或.Net Core? 了解何时使用哪个 | Microsoft .Net Core 2.0:您需要了解的一切 为什么.Net Core终于准备好迎接黄金时间了 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

与.Net Core中的兼容性相比,.Net Framework中的兼容性是一个更大的问题,因为.Net位于许多不同的地方。 它是Windows 10 通用Windows平台(UWP)的核心 ,是跨设备Xamarin和相关的Mono项目的基础,并为Unity的3D虚拟现实,增强现实和游戏环境提供动力。 不能保证为一个.Net编写的代码可以在另一版本上运行-就是说,没有通用库的一点帮助。

.Net Standard公平竞争环境

这就是.Net Standard的用处。它是一组通用的库和API ,可提供统一的编程界面。 针对.Net Standard核心功能的代码将在安装了它的任何平台上运行,尽管您可能需要为每个目标平台编写特定于UI的代码。 这并不奇怪:为ASP.Net Core编写的代码与针对在Android上运行的Xamarin或在HoloLens上运行Unity的代码具有不同的用户界面要求。

一年前,微软发布了.Net Core 2.0和.Net Standard 2.0 。 这是对.Net通用库的重大升级,并且是第一个真正使编写跨平台代码成为可能的版本。 尽管它没有.Net Framework的所有API,但是它提供了熟悉的开发经验很长的路要走,尽管将旧版.Net代码移植到新工具和库中仍然存在问题,容易得多。

去年, .Net Core进行了重大更新 ,目前正在开发2.2版。 对.Net Core进行了足够的低级更新,对于Microsoft来说,推出新的.Net Standard版本2.1以支持这些新功能并与最新版本的.Net编译器一起使用是有意义的。 当.Net Standard 2.1发布时,它将为您提供约3,000个新API ,并支持某些.Net Core的最大性能升级。

这并不意味着您需要在代码发布后立即将其升级到新库。 请务必注意,您使用的.Net Standard版本是您要定位的所有.Net版本的兼容性层。 最好针对最低版本的.Net Standard,因为您将拥有更多的兼容性选项。 当然,您可以将.Net Standard库的多个版本作为目标,但这会增加复杂性-与.Net Standard的整个目的相反,后者是通过减少所需使用的API版本数量来简化代码库。

Span<T>改善.Net性能

.Net Core 2.1中最重要的变化之一是Span<T>类型的引入。 它为.Net提供了一种处理内存的新方法 ,该方法使它可以更有效地管理缓冲区,并通过减少内存复制来提高性能。 Microsoft将其描述为“基本类型”,因为它不能与较早的运行时或编译器一起使用。 这意味着.Net Core 2.1拥有一组用于处理跨度的新API,.Net Standard需要使用这些API来扩展其现有API。

Span<T>是重要的新结构,尤其是在编写高性能代码时。 在您可能不得不对标准类型进行多次分配的地方(例如,对于要处理的字符串的元素),现在可以使用存储原始字符串的内存,并且无需分配更多即可处理原始字符串记忆。

这是一种快速简便的工作方式,尤其是如何将Span<T>及其Slice运算符实现为许多常见.Net函数的重载。 同样,您可以使用它直接与异步网络操作一起使用,从而快速读取数据流。

Span<T>脱颖而出的地方是使用微服务,尤其是当您需要处理复杂的API调用并且必须使用JSON数据时。 在低级网络缓冲区中处理数据,尤其是使用可以直接处理UTF8数据的API,可以节省大量开销,并可以大大提高代码的性能。

.Net Core 2.1中的许多功能已经可以通过单独的NuGet软件包进行访问,但是这种方法会使代码更加复杂,需要您管理所有应用程序之间的依赖关系。 将这些新功能引入.Net Standard 2.1,将为您提供一个访问核心API的地方。

新的.Net治理模型

.Net Standard 2.1最有趣的方面可能是它将新的API引入.Net,而不是致力于实现现有的概念。 这是一个重要的更改,因为它还意味着Microsoft将需要更改其运行开源.Net程序的方式。 引入Span<T>类的新功能后,需要通过新的.Net Standard API使它们可用。 展望未来,.Net标准的新版本将以特定的API领域为主题。 使用.Net Standard 2.1,很明显,该主题正在加速内存管理。

为了减少对整个.Net生态系统的影响,现在有一个审查过程来处理新添加的API。 在主要.Net实现的代表以及Miguel de Icaza担任董事会主席的情况下,很明显,社区希望确保.Net Core的快速开发不会破坏其他实现。 这可能意味着必须坚持使用NuGet的某些功能,但是Visual Studio的最新版本中对.Net工具的改进应该使它更易于处理。

.Net Standard 2.1希望继续微软当前的行动,因为它试图平衡.Net Core中的最新技术水平,同时平衡其余生态系统的需求。 添加大量新的API将对这里有所帮助,并且该项目的新治理模型应使其他.Net实现更容易更快地拾取新代码并构建更新,性能更高的代码。 要了解为什么这对开发人员有好处,您只需想象一下Unity中HoloLens混合现实应用程序的响应能力,该应用程序可以在缓冲区级别处理3D变换。

翻译自: https://www.infoworld.com/article/3319646/what-net-standard-21-means-to-you.html

standard1.1.2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值