系统教程
您现在的位置是:首页>IT之家>IT资讯内容

微软发布.NET Standard 2.1

时间:2018-11-08 出处:未知复制分享人气(次) 【

微软在去年发布.NET Standard 2.0,约一年的时间再次更新并发布.NET Standard 2.1 ,这期间已经发布了.NET Core 2.1两个版本,接下来即将时出.NET Core 2.2。微软现在对.NET Standard进行更新,预计添加三千个API,其中一大部分是全新的API,另一部分则是增加原有的API范围,以进一步汇总.NET的实例。

微软发布.NET Standard 2.1

这次的更新不只是对原本语法进行更新,同时也加入了一些新概念。.NET Standard 2.1现支持Span而在.NET Core 2.1中,微软早为其添加了Span,这是一个类似数组的类型,允许以统一的方式表达管理与非管理內存,并支持无复制切片。添加Span;与多数.NET Core 2.1的性能提升有关,因为该功能让管理缓冲区变得更加有效率,并且也帮助减少內存配置以及复制,微软认为,Span是一种非常基础的类别,因为需要Runtime和编译器支持才能充分使用。

微软发布.NET Standard 2.1

为了提高生产力,.NET生态系统统一直使用大量的动态功能,包括Reflection以及Reflection Emit。Emit通常作为优化性能的工具,以及为代理界面动态生成类型的方法,而这样的方便性让不少开发者要求微软在.NET Standard中加入Reflection Emit。过去曾通过NuGet套件这样的功能,但是微软后来发现,套件难以仿真这种核心技术,因此在.NET Standard 2.1中正式支持,开发者可以使用轻量级代码生成(Lightweight Code Generation,LCG)以及Reflection Emit。

再来.NET Standard 2.1重要的更新便是增加支持SIMD,在.NET Framework和.NET Core都已经支持SIMD一段时间了,微软利用SIMD来加速BCL中的基本运算,像是字符串比较等功能。跟Reflection Emit功能一样,有不少开发者要求微软在.NET Standard中公开这些API,毕竟这些功能需要Runtime支持,因此无法光以NuGet套件提供。

微软还为.NET Standard 2.1添加了ValueTask和ValueTask。在.NET Core 2.1中,最大的基础改进便是支持高性能场景,包括让async/await更加有效率。ValueTask原本就已经存在,当操作同步完成,不需要分配新的Task就能回传结果,在.NET Core 2.1中,微软进一步改进了这点,这使得相对应非通用ValueTask变得很有用,对于必须要异步完成操作的情况,也能减少內存使用,这是类似于Socket和NetworkStream的功能。微软现在于.NET Standard 2.1中公开这些API,供函数库开发者可以方便使用。

在.NET Standard 2.0中,微软在ADO.NET中添加了很多原语(Primitive),让O/R映像器和数据库实例可以在进行通信,但是DbProviderFactories被漏掉了,现在微软在.NET Standard 2.1中补上。简单来说,DbProviderFactories允许函数库和应用程序在编译时,使用特定的ADO.NET提供程序,能够基于名称选择已注册的DbProviderFactory实体,而不需要知道任何特定类型。

微软提到,.NET Standard 1.x和2.0版本专注于公开现有的概念,大部分的工作都还是在.NET Core方面进行,因为.NET Core提供较小的API集合。

    最新资讯
    热门内容
    小米移动电源能为iPad mini充几次电