编译 | 朱先忠、诺亚
日前,微软推出了.NET 7的生产版本。据悉,.NET 7基础设施现在可用于Windows、macOS和Linux,这次版本的更新带来了性能增强、C#语言升级以及一系列基于容器的云原生开发功能。
本次发行的关键主题包括让开发人员能够编写高性能的Web API,构建云原生应用程序并在Linux上进行部署,还特别强调提升开发人员的生产力和项目的容器化支持,以及在GitHub操作中设置CI/CD工作流等等。
从11月8日起,全球程序员即可从地址(https://dotnet.microsoft.com/en-us/download/dotnet/7.0)处获取分别针对Windows、Linux和macOS的.NET 7的生产版本。
截图@微软官网
.Net 7是微软.Net统一之旅中的第三个主要发行版本。借助.NET 7,开发人员可以通过一次性学习一个SDK、一个运行时和一组基础库实现技能重用,从而开发出包括云端、Web、桌面、移动、人工智能和物联网等多平台的各类应用程序。
性能亮点:更强、更快
对于C#11语言而言,其目标是使开发人员能够编写更少的代码。.NET 7在通过对象初始化增强、支持原始字符串字面量和其他功能简化编码的同时,实现了泛型数学等新特性。
此外,其他亮点还包括:
- 持续改进性能。
- 一个BCL(基础类库)。
- 本机支持ARM64系统。
- 针对Linux系统的增强的.NET支持。
- HTTP/3和针对云原生应用程序的最小化打包API的改进。
- 针对控制台应用程序的本机AOT(提前编译:Ahead-of-time compilation)支持。这样可以生成针对目标平台的特定文件格式的独立可执行的二进制文件,从而实现快速启动和小型独立部署等优点。
- F# 7函数语言功能继续致力于可靠性和对现有特征的支持。
另外值得注意的是, .NET 7与ASP.NET Core、Entity Framework,以及 .NET MAUI(多平台应用程序UI)、Windows Forms、Windows Presentation Foundation和用于构建分布式应用程序的Orleans 7框架等一起发行。同时,对于Blazor Web应用程序开发工具,.NET 7改进了WebAssembly调试体验,并支持针对位置改变这种事件的处理。
其中,.NET MAUI被视为 .NET跨平台原生UI的未来,于9月初次亮相。但彼时曾有一部分开发者对此表示不满,因为他们不相信该技术已经完全成熟。而在.NET 7中,可以看到,.NET MAUI在桌⾯应⽤的⽀持有了进一步改善,对手势、桌⾯菜单、⿏标⽀持、右键菜单、窗体缩放都有了很好的⽀持。在开发体验上.NET MAUI已经可以⽀持iOS 16和Android 13。
在.NET 7版本正式发布之前,微软.NET团队开发者Stephen Toub专门就.NET 7的效能改进做了详细说明。微软在每个.NET版本都强调效能改进,因此也有开发者质疑,如果说 .NET 6的效能已经提升到一个程度,.NET 7是否还有效能提升的空间。
对此,Stephen Toub强调:.NET 7的速度“非常快”,Runtime和核心函数库加入了1,000个效能相关的拉取请求,而且在ASP.NET Core、Windows Forms和Entity Framework也有各种改进。他表示,这一版本将是有史以来最快的.NET。他甚至提到,当开发者被经理问到为什么要升级到.NET 7,可以直接回答“.NET 7 is super fast.”
伴随着.NET 7的发行,目前微软正在发布Visual Studio 2022 17.4 IDE。Visual Studio 2022为当前的集成开发环境引入了64位功能。在此产品发布之前,.NET 7经历了广泛的预览和发布候选阶段。.NET 8很可能会在一年内问世,预计将专注类似如现代工作负载、Web API以及更多的有关无缝云原生开发这样的主题。
.NET 7发布之后C#有没有可能超过Java?
新版本发布后,知乎论坛出现了这样一则问题:“.NET 7发布之后,C#有没有可能超过Java?”对此,不少开发者留下了各自的见解。
观点1:在国外.NET已经足够繁荣,但国内,很多人对C#、.NET有很大的偏见。.NET能否吃掉Java的一部分市场依旧有待商榷。从个体角度看,人均薪酬上.NET不如Java,人均就业机会上.NET大于Java。
截图@知乎
观点2:从性能上看.NET超越了Java,但是从生态上来看,Java远胜.NET,这种局面长期不会有很大改变。
观点3:自己觉得好的话就用,不用纠结超不超过的问题。这些流行语言选哪种学到一定深度, 都碾压语言差异带来的优势。
参考链接:
https://www.infoworld.com/article/3679328/microsoft-net-7-makes-its-official-debut.html