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