編譯 | 朱先忠、諾亞
日前,微軟推出了.NET 7的生產(chǎn)版本。據(jù)悉,.NET 7基礎(chǔ)設(shè)施現(xiàn)在可用于Windows、macOS和Linux,這次版本的更新帶來了性能增強(qiáng)、C#語言升級(jí)以及一系列基于容器的云原生開發(fā)功能。
本次發(fā)行的關(guān)鍵主題包括讓開發(fā)人員能夠編寫高性能的Web API,構(gòu)建云原生應(yīng)用程序并在Linux上進(jìn)行部署,還特別強(qiáng)調(diào)提升開發(fā)人員的生產(chǎn)力和項(xiàng)目的容器化支持,以及在GitHub操作中設(shè)置CI/CD工作流等等。
從11月8日起,全球程序員即可從地址(https://dotnet.microsoft.com/en-us/download/dotnet/7.0)處獲取分別針對(duì)Windows、Linux和macOS的.NET 7的生產(chǎn)版本。
截圖@微軟官網(wǎng)
.Net 7是微軟.Net統(tǒng)一之旅中的第三個(gè)主要發(fā)行版本。借助.NET 7,開發(fā)人員可以通過一次性學(xué)習(xí)一個(gè)SDK、一個(gè)運(yùn)行時(shí)和一組基礎(chǔ)庫實(shí)現(xiàn)技能重用,從而開發(fā)出包括云端、Web、桌面、移動(dòng)、人工智能和物聯(lián)網(wǎng)等多平臺(tái)的各類應(yīng)用程序。
性能亮點(diǎn):更強(qiáng)、更快
對(duì)于C#11語言而言,其目標(biāo)是使開發(fā)人員能夠編寫更少的代碼。.NET 7在通過對(duì)象初始化增強(qiáng)、支持原始字符串字面量和其他功能簡化編碼的同時(shí),實(shí)現(xiàn)了泛型數(shù)學(xué)等新特性。
此外,其他亮點(diǎn)還包括:
- 持續(xù)改進(jìn)性能。
- 一個(gè)BCL(基礎(chǔ)類庫)。
- 本機(jī)支持ARM64系統(tǒng)。
- 針對(duì)Linux系統(tǒng)的增強(qiáng)的.NET支持。
- HTTP/3和針對(duì)云原生應(yīng)用程序的最小化打包API的改進(jìn)。
- 針對(duì)控制臺(tái)應(yīng)用程序的本機(jī)AOT(提前編譯:Ahead-of-time compilation)支持。這樣可以生成針對(duì)目標(biāo)平臺(tái)的特定文件格式的獨(dú)立可執(zhí)行的二進(jìn)制文件,從而實(shí)現(xiàn)快速啟動(dòng)和小型獨(dú)立部署等優(yōu)點(diǎn)。
- F# 7函數(shù)語言功能繼續(xù)致力于可靠性和對(duì)現(xiàn)有特征的支持。
另外值得注意的是, .NET 7與ASP.NET Core、Entity Framework,以及 .NET MAUI(多平臺(tái)應(yīng)用程序UI)、Windows Forms、Windows Presentation Foundation和用于構(gòu)建分布式應(yīng)用程序的Orleans 7框架等一起發(fā)行。同時(shí),對(duì)于Blazor Web應(yīng)用程序開發(fā)工具,.NET 7改進(jìn)了WebAssembly調(diào)試體驗(yàn),并支持針對(duì)位置改變這種事件的處理。
其中,.NET MAUI被視為 .NET跨平臺(tái)原生UI的未來,于9月初次亮相。但彼時(shí)曾有一部分開發(fā)者對(duì)此表示不滿,因?yàn)樗麄儾幌嘈旁摷夹g(shù)已經(jīng)完全成熟。而在.NET 7中,可以看到,.NET MAUI在桌?應(yīng)?的?持有了進(jìn)一步改善,對(duì)手勢(shì)、桌?菜單、?標(biāo)?持、右鍵菜單、窗體縮放都有了很好的?持。在開發(fā)體驗(yàn)上.NET MAUI已經(jīng)可以?持iOS 16和Android 13。
在.NET 7版本正式發(fā)布之前,微軟.NET團(tuán)隊(duì)開發(fā)者Stephen Toub專門就.NET 7的效能改進(jìn)做了詳細(xì)說明。微軟在每個(gè).NET版本都強(qiáng)調(diào)效能改進(jìn),因此也有開發(fā)者質(zhì)疑,如果說 .NET 6的效能已經(jīng)提升到一個(gè)程度,.NET 7是否還有效能提升的空間。
對(duì)此,Stephen Toub強(qiáng)調(diào):.NET 7的速度“非??臁?,Runtime和核心函數(shù)庫加入了1,000個(gè)效能相關(guān)的拉取請(qǐng)求,而且在ASP.NET Core、Windows Forms和Entity Framework也有各種改進(jìn)。他表示,這一版本將是有史以來最快的.NET。他甚至提到,當(dāng)開發(fā)者被經(jīng)理問到為什么要升級(jí)到.NET 7,可以直接回答“.NET 7 is super fast.”
伴隨著.NET 7的發(fā)行,目前微軟正在發(fā)布Visual Studio 2022 17.4 IDE。Visual Studio 2022為當(dāng)前的集成開發(fā)環(huán)境引入了64位功能。在此產(chǎn)品發(fā)布之前,.NET 7經(jīng)歷了廣泛的預(yù)覽和發(fā)布候選階段。.NET 8很可能會(huì)在一年內(nèi)問世,預(yù)計(jì)將專注類似如現(xiàn)代工作負(fù)載、Web API以及更多的有關(guān)無縫云原生開發(fā)這樣的主題。
.NET 7發(fā)布之后C#有沒有可能超過Java?
新版本發(fā)布后,知乎論壇出現(xiàn)了這樣一則問題:“.NET 7發(fā)布之后,C#有沒有可能超過Java?”對(duì)此,不少開發(fā)者留下了各自的見解。
觀點(diǎn)1:在國外.NET已經(jīng)足夠繁榮,但國內(nèi),很多人對(duì)C#、.NET有很大的偏見。.NET能否吃掉Java的一部分市場依舊有待商榷。從個(gè)體角度看,人均薪酬上.NET不如Java,人均就業(yè)機(jī)會(huì)上.NET大于Java。
截圖@知乎
觀點(diǎn)2:從性能上看.NET超越了Java,但是從生態(tài)上來看,Java遠(yuǎn)勝.NET,這種局面長期不會(huì)有很大改變。
觀點(diǎn)3:自己覺得好的話就用,不用糾結(jié)超不超過的問題。這些流行語言選哪種學(xué)到一定深度, 都碾壓語言差異帶來的優(yōu)勢(shì)。
參考鏈接:
??https://www.infoworld.com/article/3679328/microsoft-net-7-makes-its-official-debut.html??