.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)能夠可窺一斑了。因此,作為開(kāi)發(fā)與設(shè)計(jì)人員,我們有必要通過(guò)嘗鮮試用,來(lái)了解它與過(guò)往版本的各種不同之處。
總的說(shuō)來(lái),Microsoft的.NET Core 3具有三個(gè)主要特性,它們分別是:
- 桌面工作負(fù)載與UI的互操作性。
 - 人工智能與機(jī)器學(xué)習(xí)。
 - Web和云應(yīng)用開(kāi)發(fā)的效率提升。
 
在過(guò)去幾年中,隨著Microsoft不斷地推動(dòng)Core的改進(jìn)與擴(kuò)展,如今的.NET Core 3.0相較其1.0和2.0版本,更注重于針對(duì)云服務(wù)、以及Web應(yīng)用程序的開(kāi)發(fā)。目前,用戶(hù)完全可以選用WinForms和WPF(Windows Presentation Foundation)來(lái)實(shí)現(xiàn)桌面級(jí)應(yīng)用程序;使用Raspberry Pis和小工具集(gadgets)實(shí)現(xiàn)各種物聯(lián)網(wǎng)(IoT)應(yīng)用;以及使用ML.NET(譯者注:是為.NET 開(kāi)發(fā)人員生成的開(kāi)源型機(jī)器學(xué)習(xí)框架),釋放各種機(jī)器學(xué)習(xí)(ML)和人工智能(AI)的潛能。
.NET Core 3.0的主要特性
.NET Core的構(gòu)建環(huán)境包含了各種常規(guī)的語(yǔ)言規(guī)范,以表示架構(gòu)類(lèi)庫(kù)(Framework Class Library)的用法,進(jìn)而收集可重用的資產(chǎn)、以及用來(lái)監(jiān)督項(xiàng)目執(zhí)行的公共語(yǔ)言運(yùn)行時(shí)(Common Language Runtime)。
各個(gè)開(kāi)源平臺(tái)
因此,每當(dāng)有新版本的Core發(fā)布時(shí),您都可以在任何的給定時(shí)刻更新某一臺(tái)計(jì)算機(jī),而不會(huì)對(duì)不同的應(yīng)用程序產(chǎn)生任何影響。下面,我們來(lái)討論一下新版本的具體特點(diǎn):
C#8
.NET Core 3.0能夠廣泛地支持C#8。而C#8的主要新功能包含有:Nullable的引用類(lèi)型、各種異步流(Async streams)、范圍與文件、以及不同的Switch表達(dá)式。
使用聲明
這是另一種為了使對(duì)象在作用域中保持活動(dòng)狀態(tài),進(jìn)而保證對(duì)象能夠被適當(dāng)?shù)貜U棄的方法。也就是說(shuō),一旦超出了范圍,對(duì)象將會(huì)被自然地丟棄掉。
解析和安排修復(fù)
- 準(zhǔn)確地解析并格式化負(fù)零(negative zero)。
 - 準(zhǔn)確地舍入(round)并解析任意長(zhǎng)度的輸入。
 - 通過(guò)執(zhí)行不區(qū)分大小寫(xiě)的檢查、并允許在前端使用可選的 +(如適用),以有效地解析無(wú)窮大(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)之類(lèi)的類(lèi)型已體現(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)用程序開(kāi)發(fā),能夠使用Windows媒體播放器和Internet Explorer,來(lái)演示HTML頁(yè)面、并播放富媒體的文檔。因此,客戶(hù)可以采用Microsoft Edge和媒體播放器,來(lái)支持最新的各種操作指南。
分層編譯
在.NET Core 3.0中,分層編譯被設(shè)置為默認(rèn)選項(xiàng)。在運(yùn)行時(shí),它能夠更加自適應(yīng)地利用實(shí)時(shí)(JIT)編譯器,來(lái)提供更好的性能和更高的負(fù)載。
Windows桌面應(yīng)用程序
用戶(hù)可以使用.NET Core 3.0的Windows窗體和WPF,來(lái)組裝Windows桌面應(yīng)用程序。.NET Core 3.0還能夠支持使用Windows UI XAML庫(kù)(WinUI)中的新式控件和傳統(tǒng)的樣式。而且,Windows桌面組件是Windows .NET Core 3.0 SDK的一部分。
加密
.NET Core 3.0包含了AES-CCM和AES-GCM密碼算法,并且能夠通過(guò)System.Security.Cryptography.AesGcm和System.Security.Cryptography.AesCcm來(lái)實(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語(yǔ)言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)用程序,來(lái)創(chuàng)建MSIX軟件包。
快速隱式的JSON支持
新的隱式JSON支持,不但具有低內(nèi)存分配和高性能的特點(diǎn),而且是基于Span 
程序集卸載
從API的角度來(lái)看,.NET Core 3.0的AssemblyLoadContext新功能基本上是透明的,只有幾個(gè)新的API才能發(fā)現(xiàn)它。它不但支持卸載加載器的上下文,還能為實(shí)例化類(lèi)型、靜態(tài)字段和程序集本身釋放所有的內(nèi)存。籍此,應(yīng)用程序可以自由地進(jìn)行堆?;蚯謇?yè)砣粫?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】
















 
 
 



 
 
 
 