.NET Core 3.0功能亮點(diǎn)搶先看
譯文【51CTO.com快譯】在最近推出的Visual Studio 2019中,Microsoft為.NET Core 3.0定義了大量新的功能與亮點(diǎn)。雖然正式版的.NET Core 3.0要等到今年晚些時(shí)候才會(huì)發(fā)布,但是我們?cè)赩isual Studio 2019的各種評(píng)論區(qū)里已經(jīng)能夠可窺一斑了。因此,作為開發(fā)與設(shè)計(jì)人員,我們有必要通過嘗鮮試用,來了解它與過往版本的各種不同之處。
總的說來,Microsoft的.NET Core 3具有三個(gè)主要特性,它們分別是:
- 桌面工作負(fù)載與UI的互操作性。
- 人工智能與機(jī)器學(xué)習(xí)。
- Web和云應(yīng)用開發(fā)的效率提升。
在過去幾年中,隨著Microsoft不斷地推動(dòng)Core的改進(jìn)與擴(kuò)展,如今的.NET Core 3.0相較其1.0和2.0版本,更注重于針對(duì)云服務(wù)、以及Web應(yīng)用程序的開發(fā)。目前,用戶完全可以選用WinForms和WPF(Windows Presentation Foundation)來實(shí)現(xiàn)桌面級(jí)應(yīng)用程序;使用Raspberry Pis和小工具集(gadgets)實(shí)現(xiàn)各種物聯(lián)網(wǎng)(IoT)應(yīng)用;以及使用ML.NET(譯者注:是為.NET 開發(fā)人員生成的開源型機(jī)器學(xué)習(xí)框架),釋放各種機(jī)器學(xué)習(xí)(ML)和人工智能(AI)的潛能。
.NET Core 3.0的主要特性
.NET Core的構(gòu)建環(huán)境包含了各種常規(guī)的語言規(guī)范,以表示架構(gòu)類庫(Framework Class Library)的用法,進(jìn)而收集可重用的資產(chǎn)、以及用來監(jiān)督項(xiàng)目執(zhí)行的公共語言運(yùn)行時(shí)(Common Language Runtime)。
各個(gè)開源平臺(tái)
因此,每當(dāng)有新版本的Core發(fā)布時(shí),您都可以在任何的給定時(shí)刻更新某一臺(tái)計(jì)算機(jī),而不會(huì)對(duì)不同的應(yīng)用程序產(chǎn)生任何影響。下面,我們來討論一下新版本的具體特點(diǎn):
C#8
.NET Core 3.0能夠廣泛地支持C#8。而C#8的主要新功能包含有:Nullable的引用類型、各種異步流(Async streams)、范圍與文件、以及不同的Switch表達(dá)式。
使用聲明
這是另一種為了使對(duì)象在作用域中保持活動(dòng)狀態(tài),進(jìn)而保證對(duì)象能夠被適當(dāng)?shù)貜U棄的方法。也就是說,一旦超出了范圍,對(duì)象將會(huì)被自然地丟棄掉。
解析和安排修復(fù)
- 準(zhǔn)確地解析并格式化負(fù)零(negative zero)。
- 準(zhǔn)確地舍入(round)并解析任意長(zhǎng)度的輸入。
- 通過執(zhí)行不區(qū)分大小寫的檢查、并允許在前端使用可選的 +(如適用),以有效地解析無窮大(Infinity)和 NaN。
EEE浮點(diǎn)增強(qiáng)功能
根據(jù)IEEE 754-2008的修定內(nèi)容,.Net Core 3.0同意并更新了各種浮點(diǎn)API。它會(huì)公布每一項(xiàng)“必需”的操作,并確保它們?cè)谛袨樯夏軌蚍螴EEE的規(guī)范。
更多BCL改進(jìn)
Span
實(shí)際上,像字符串(String)之類的類型已體現(xiàn)出了不同程度的改進(jìn),它們?cè)谂c Dictionary
- ThreadPool.UnsafeQueueWorkItem
- 內(nèi)置于HttpClient的Brotli支持
- Unsafe.Unbox
- 復(fù)數(shù)的算術(shù)運(yùn)算符
- CancellationToken.Unregister
- StringBuilder.GetChunks
- 用于TCP保持活動(dòng)狀態(tài)的套接字API
- RandomNumberGenerator.GetInt32.
- IPEndPoint解析
當(dāng)前瀏覽器與多媒體控制
.NET的桌面應(yīng)用程序開發(fā),能夠使用Windows媒體播放器和Internet Explorer,來演示HTML頁面、并播放富媒體的文檔。因此,客戶可以采用Microsoft Edge和媒體播放器,來支持最新的各種操作指南。
分層編譯
在.NET Core 3.0中,分層編譯被設(shè)置為默認(rèn)選項(xiàng)。在運(yùn)行時(shí),它能夠更加自適應(yīng)地利用實(shí)時(shí)(JIT)編譯器,來提供更好的性能和更高的負(fù)載。
Windows桌面應(yīng)用程序
用戶可以使用.NET Core 3.0的Windows窗體和WPF,來組裝Windows桌面應(yīng)用程序。.NET Core 3.0還能夠支持使用Windows UI XAML庫(WinUI)中的新式控件和傳統(tǒng)的樣式。而且,Windows桌面組件是Windows .NET Core 3.0 SDK的一部分。
加密
.NET Core 3.0包含了AES-CCM和AES-GCM密碼算法,并且能夠通過System.Security.Cryptography.AesGcm和System.Security.Cryptography.AesCcm來實(shí)現(xiàn)。同時(shí),這些復(fù)雜的算法都用到了關(guān)聯(lián)數(shù)據(jù)和認(rèn)證加密(Association Data and Authenticated Encryption,AEAD)。
Windows原生的互操作性
.NET Core 3.0以C語言API、WinRT和COM的形式,提供了豐富的Windows原生API。同時(shí),.NET Core 3.0也支持各種Activate WinRT API和CoCreate COM API。
Windows桌面的MSIX部署
MSIX可用于向Windows 10提供.NET Core 3.0的桌面級(jí)應(yīng)用程序。而Windows應(yīng)用程序包項(xiàng)目(Application Packaging Project)使您能夠使用獨(dú)立的.NET Core應(yīng)用程序,來創(chuàng)建MSIX軟件包。
快速隱式的JSON支持
新的隱式JSON支持,不但具有低內(nèi)存分配和高性能的特點(diǎn),而且是基于Span
程序集卸載
從API的角度來看,.NET Core 3.0的AssemblyLoadContext新功能基本上是透明的,只有幾個(gè)新的API才能發(fā)現(xiàn)它。它不但支持卸載加載器的上下文,還能為實(shí)例化類型、靜態(tài)字段和程序集本身釋放所有的內(nèi)存。籍此,應(yīng)用程序可以自由地進(jìn)行堆?;蚯謇頁砣?,而不會(huì)發(fā)生任何內(nèi)存溢出的狀況。
平臺(tái)支持
.Net Core 3能夠廣泛地支持如下操作系統(tǒng):
- 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+
原文標(biāo)題:What Is New in .NET Core 3.0?,作者:Nisha Patel
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】