.NET Core 3.0功能亮点抢先看 架构&设计

来源:互联网 / 作者:SKY / 2019-08-10 15:42 / 点击:
在最近推出的Visual Studio 2019中,Microsoft为.NET Core 3.0定义了大量新的功能,本文给您逐一进行介绍。

.NET Core 3.0功能亮点抢先看

【Chinaz.com快译】在最近推出的Visual Studio 2019中,Microsoft为.NET Core 3.0定义了大量新的功能与亮点。虽然正式版的.NET Core 3.0要等到今年晚些时候才会发布,但是我们在Visual Studio 2019的各种评论区里已经能够可窥一斑了。因此,作为开发与设计人员,我们有必要通过尝鲜试用,来了解它与过往版本的各种不同之处。

总的说来,Microsoft的.NET Core 3具有三个主要特性,它们分别是:

桌面工作负载与UI的互操作性。

人工智能与机器学习。

Web和云应用开发的效率提升。

在过去几年中,随着Microsoft不断地推动Core的改进与扩展,如今的.NET Core 3.0相较其1.0和2.0版本,更注重于针对云服务、以及Web应用程序的开发。目前,用户完全可以选用WinForms和WPF(Windows Presentation Foundation)来实现桌面级应用程序;使用Raspberry Pis和小工具集(gadgets)实现各种物联网(IoT)应用;以及使用ML.NET(译者注:是为.NET 开发人员生成的开源型机器学习框架),释放各种机器学习(ML)和人工智能(AI)的潜能。

.NET Core 3.0的主要特性

.NET Core的构建环境包含了各种常规的语言规范,以表示架构类库(Framework Class Library)的用法,进而收集可重用的资产、以及用来监督项目执行的公共语言运行时(Common Language Runtime)。

各个开源平台

因此,每当有新版本的Core发布时,您都可以在任何的给定时刻更新某一台计算机,而不会对不同的应用程序产生任何影响。下面,我们来讨论一下新版本的具体特点:

C#8

.NET Core 3.0能够广泛地支持C#8。而C#8的主要新功能包含有:Nullable的引用类型、各种异步流(Async streams)、范围与文件、以及不同的Switch表达式。

使用声明

这是另一种为了使对象在作用域中保持活动状态,进而保证对象能够被适当地废弃的方法。也就是说,一旦超出了范围,对象将会被自然地丢弃掉。

解析和安排修复

准确地解析并格式化负零(negative zero)。

准确地舍入(round)并解析任意长度的输入。

通过执行不区分大小写的检查、并允许在前端使用可选的 +(如适用),以有效地解析无穷大(Infinity)和 NaN。

EEE浮点增强功能

根据IEEE 754-2008的修定内容,.Net Core 3.0同意并更新了各种浮点API。它会公布每一项“必需”的操作,并确保它们在行为上能够符合IEEE的规范。

更多BCL改进

Span 、Memory 、以及在.NET Core 2.1中所提供的其他类型,都将在.NET Core 3.0中得到了改进。籍此,诸如spanning、格式化、解析、以及切片等常规操作,都能得到有效的执行。

实际上,像字符串(String)之类的类型已体现出了不同程度的改进,它们在与 Dictionary

ThreadPool.UnsafeQueueWorkItem

内置于HttpClient的Brotli支持

Unsafe.Unbox

复数的算术运算符

CancellationToken.Unregister

StringBuilder.GetChunks

用于TCP保持活动状态的套接字API

RandomNumberGenerator.GetInt32.

IPEndPoint解析

当前浏览器与多媒体控制

.NET的桌面应用程序开发,能够使用Windows媒体播放器和Internet Explorer,来演示HTML页面、并播放富媒体的文档。因此,客户可以采用Microsoft Edge和媒体播放器,来支持最新的各种操作指南。

分层编译

在.NET Core 3.0中,分层编译被设置为默认选项。在运行时,它能够更加自适应地利用实时(JIT)编译器,来提供更好的性能和更高的负载。

Windows桌面应用程序

用户可以使用.NET Core 3.0的Windows窗体和WPF,来组装Windows桌面应用程序。.NET Core 3.0还能够支持使用Windows UI XAML库(WinUI)中的新式控件和传统的样式。而且,Windows桌面组件是Windows .NET Core 3.0 SDK的一部分。

加密

.NET Core 3.0包含了AES-CCM和AES-GCM密码算法,并且能够通过System.Security.Cryptography.AesGcm和System.Security.Cryptography.AesCcm来实现。同时,这些复杂的算法都用到了关联数据和认证加密(Association Data and Authenticated Encryption,AEAD)。

Windows原生的互操作性

.NET Core 3.0以C语言API、WinRT和COM的形式,提供了丰富的Windows原生API。同时,.NET Core 3.0也支持各种Activate WinRT API和CoCreate COM API。

Windows桌面的MSIX部署

MSIX可用于向Windows 10提供.NET Core 3.0的桌面级应用程序。而Windows应用程序包项目(Application Packaging Project)使您能够使用独立的.NET Core应用程序,来创建MSIX软件包。

快速隐式的JSON支持

新的隐式JSON支持,不但具有低内存分配和高性能的特点,而且是基于Span 的。.NET Core 3.0已在其命名空间中包含了三个与JSON相关的基本类型排序。

程序集卸载

从API的角度来看,.NET Core 3.0的AssemblyLoadContext新功能基本上是透明的,只有几个新的API才能发现它。它不但支持卸载加载器的上下文,还能为实例化类型、静态字段和程序集本身释放所有的内存。籍此,应用程序可以自由地进行堆栈或清理拥塞,而不会发生任何内存溢出的状况。

平台支持

.Net Core 3能够广泛地支持如下操作系统:

Windows Server: 2012 R2 SP1+

Windows桌面端: 7, 8.1, 10 (1607+)

RHEL: 6+

macOS: 10.12+

Ubuntu: 16.04+

Fedora: 26+

阅读延展

1
3