【51CTO.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
实际上,像字符串(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
程序集卸载
从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+
- SLES: 12+
- Debian: 9+
- Alpine: 3.8+
- openSUSE: 42.3+
原文标题:What Is New in .NET Core 3.0?,作者:Nisha Patel
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】