
在全面开源的 趋势之 下,微软 可算是 跟上了 时代的 脚步,作为微软最早迈向开源的重要 象征 之一,.NET5的发布对微软 , 以及.NET的 使用者 都意义非凡 。未来 , 微软 会 将所有的.NET 组件整合到一个产品下,用户可以根据需求使用.NET的某个部分, 不用专程 下载安装所有内容。
By the way,如果是在使用 Visual Studio 的 用户,需要16.8或更高的版本才能在Windows上使用.NET 5, 另外, 在MacOS 平台 上 则需 使用最新版本的Visual Studio for Mac。 目前 Visual Studio Code已经支持C#扩展 、 .NET5和C#9。
NET5是.NET统一 进程上 的第一 步 。微软希望.NET Framework 的 开发者能够迁移他们的代码和应用到.NET5上,为明年发布.NET6 并 将Xamarin开发者 融合 到统一平台奠定基础。
.NET5是.NET Framework和.NET Core的结合,旨在统一.NET平台。.NET5毫无疑问代表 着 未来,但是目前国内大部分企业使用的依然是.NET Framework,不过长期来看,升级似乎 会是大趋势 。

为了充分 证明 .NET5的性能,自首个预览版发布以来 , 微软已经 将其 广泛 地 部署 于 内部, 著名的搜索引擎 Bing 就 在使用这个新平台。此次更新中 有 一些比较显著的变化,包括性能上的改进。
以下是微软发布的此版本的相关亮点:
1. .NET5部署到 http://dot.net和 http://Bing.com 托管数月,已经得到了实战检验。
2. 很多组件的性能都得到了极大地提高。.NET5中ARM64的性能和GRPC等都有改善
3. C# 9和F# 5提供了新的语言改进,如C# 9的顶层程序和记录,而F# 5则提供了交互式编程和.NET上功能编程的性能提升。
4. .NET库对Json序列化、正则表达式和HTTP(HTTP 1.1、HTTP/2)的性能有所提升,它们现在可被完全注释为可空性。
5. 由于GC、分层编译等方面的完善,P95延迟有所下降。
6. 应用部署选项更优,有了ClickOnce客户端应用发布、单文件应用、容器镜像尺寸减小,并增加了Server Core容器镜像。
7. 平台范围扩大,增加了WindowsArm64和WebAssembly。
8. 一个值得注意的变化是,.NET5应用可以运行在ARM64 Windows设备上,消除了仿真带来的一些性能障碍。然而,在这个版本中,Windows 桌面组件并不能用于ARM64设备,这计划在.NET5的服务更新中进行。
近几年.NET Core的开源项目非常活跃,随着.net5的发布,这些项目将会逐步整合到 统一的.NET 版本中。
不过, 目前.NET5虽然已经足够 有优势 ,但严格来说依然属于实现阶段,.NET6或许更值得期待。
目前关于.NET5的升级并未在实际中 论证过 , 这些升级项目包括:
正则性能提升,静态正则缓存;Kestrel 的通信性能提升, 对 Http3 的 支持; 证书互转,SSL通信 优化 ; R eadonly S truct在内部的应用;HttpClient人性化的Api, 对W ebassembly支持, 对 序列化结果 的 支持, 对 Quic 的 支持 。
且 Json支持字段序列化 、 只读类型序列化 、 Web类型序列化,循环引用序列化;GC可分配no zero的内存空间,分配“固定住”的大堆空间,GCMemoryInfo。
如果没有 实际 的需求,目前并不建议升级至 .NET 5,可以将 。 NET 5作为研究跳板,在明年微软发布6.0LTS长期维护版本时 再 升级,降低风险。当然, 升级与否还是需 根据 自身 实际情况 决断 。
感谢XJRsoft提供撰文支持,详情请参阅 https://www.xjrsoft.com