.NET Core 2.1 正式发布
這次更新包括對性能的改進(jìn),對運(yùn)行時(shí)和工具的改進(jìn)。還包含一種以 NuGet 包的形式部署工具的新方法。我們添加了一個(gè)名為?Span<T>?的新基元類型,它可以在沒有內(nèi)存分配的情況下對數(shù)據(jù)進(jìn)行操作。還有許多其他新的 API,專注于密碼學(xué),壓縮和 Windows 兼容性。它是第一個(gè)支持 Alpine Linux 和 ARM32 芯片的版本。您今天就可以開始將現(xiàn)有項(xiàng)目更新至 .NET Core 2.1 了。 該版本與 .NET Core 2.0 兼容,更新會(huì)變得很簡單。
.NET Core 2.1 具有更快的構(gòu)建性能,更快的內(nèi)部工程系統(tǒng)并改進(jìn)了與.NET框架之間的兼容性。根據(jù)Microsoft的初步基準(zhǔn),所有的.NET Core項(xiàng)目在2.1版本中都會(huì)有更快的構(gòu)建時(shí)間,越大的項(xiàng)目獲益越明顯。
2.1版本推出一種實(shí)現(xiàn)框架兼容性的方法,稱為“小版本前滾(minor-version roll-forward)”,這樣就不需要再將應(yīng)用程序和其運(yùn)行環(huán)境相匹配了。這意味著Core 2.1的應(yīng)用程序在之后的小版本(如2.2、2.3等等)將不需要進(jìn)行修改就可以直接運(yùn)行。這些新增特性對于獨(dú)立應(yīng)用程序(譯注:Self-contained apps是.NET Core中的一種應(yīng)用類型)來說是一種改進(jìn),通過使用dotnet publish命令能夠準(zhǔn)確無誤地將這些應(yīng)用程序進(jìn)行打包。在2.1版本中,打包后的包將默認(rèn)包含最新的補(bǔ)丁運(yùn)行環(huán)境。
Long-term Support 長期支持
.NET Core 2.1 將是一個(gè)長期支持(LTS)版本。這意味著它會(huì)支持三年。我們建議您將 .NET Core 2.1 作為 .NET Core 開發(fā)的新標(biāo)準(zhǔn)。
我們打算在未來 2-3 個(gè)月內(nèi)發(fā)布少量重要更新,然后正式將 .NET Core 2.1 作為 LTS 發(fā)布。之后,更新將針對安全性、可靠性以及添加平臺支持(例如 Ubuntu 18.10)。我們建議您現(xiàn)在開始采用 .NET Core 2.1。對于處于活躍開發(fā)狀態(tài)的應(yīng)用程序,沒有理由推遲將 .NET Core 2.1 部署到生產(chǎn)環(huán)境中。對于不活躍開發(fā)狀態(tài)的應(yīng)用程序,我們建議您等待部署,直到將 .NET Core 2.1 聲明為 LTS。
有以下幾個(gè)原因升級到 .NET Core 2.1:
長期支持(LTS)。
卓越的性能和質(zhì)量。
新的平臺支持,例如:Ubuntu 18.04,Alpine,ARM32。
更容易的在項(xiàng)目文件中管理平臺依賴關(guān)系和自包含應(yīng)用程序發(fā)布。
我們收到很多希望將 .NET Core 2.0 作為 LTS 版本的請求。事實(shí)上,那是我們原來的計(jì)劃。我們選擇等待,直到我們解決了管理平臺依賴性的各種挑戰(zhàn)(上面的最后一點(diǎn))。平臺依賴管理是 .NET Core 1.0 中的一個(gè)重要問題,并且隨著每個(gè)版本的逐步改進(jìn)。例如,您會(huì)注意到 ASP.NET Core 軟件包引用不再包含 .NET Core 2.1 的版本號。
首次引入Global Tools
Global Tools是.NET Core 2.1預(yù)覽版中其中一個(gè)初次出現(xiàn)的特性。Global Tools提供了一種方法,讓開發(fā)人員編寫的.NET Core應(yīng)用可以打包成NuGet包交付。如果.NET Core運(yùn)行在目標(biāo)平臺上,那么一個(gè)恰當(dāng)打包的Global Tool就可以在那上面運(yùn)行。JavaScript開發(fā)人員可能會(huì)發(fā)現(xiàn)一件有趣的事,就是這個(gè)工具直接借鑒了NPM Global Tools。最終,.NET Core Global Tools將支持安裝到用戶的本地目錄。
ASP.NET Core 2.1對GDPR的支持
歐盟的《通用數(shù)據(jù)保護(hù)條例》(General Data Protection Regulation,以下簡稱 GDPR)已經(jīng)于 2018 年 5 月 25 日正式施行。GDPR 涵蓋了包括數(shù)據(jù)泄露發(fā)生后 72 小時(shí)內(nèi)向監(jiān)管機(jī)構(gòu)通報(bào)的要求,以及提前告知用戶數(shù)據(jù)用途的要求等等。GDPR 允許監(jiān)管機(jī)構(gòu)對違反規(guī)定的公司處罰高達(dá)其全球收入的 4%的罰金。如果亞馬遜受到懲罰,罰款將為 70 億美元。然而有趣的是,由于像亞馬遜這樣的公司收入巨大,利潤卻相對較低,因此 4%的罰款可能會(huì)花掉他們兩年的利潤。如果歐盟居民提交了數(shù)據(jù)訪問請求,公司有 30 天的時(shí)間作出響應(yīng)。假設(shè)一家公司收到了這樣的請求,但它們?nèi)圆煌耆?GDPR 標(biāo)準(zhǔn),并且無法回應(yīng),那么該居民可以向當(dāng)?shù)乇O(jiān)管機(jī)構(gòu)提出投訴。GDPR 要求監(jiān)管機(jī)構(gòu)采取措施來執(zhí)行法律。就算不是 4% 的罰款,但他們也不能對投訴坐視不理。“如果監(jiān)管機(jī)構(gòu)在第一個(gè)月收到 10000 個(gè)投訴,他們就有麻煩了。
GDPR 只適用于歐盟境內(nèi)和歐盟居民,但由于許多公司在歐洲開展業(yè)務(wù),美國科技行業(yè)正在手忙腳亂地整改。盡管可以預(yù)見在 GDPR 的實(shí)施初期一定會(huì)出現(xiàn)問題,但這一規(guī)定標(biāo)志著全球數(shù)據(jù)處理方式的巨變。希望隨著公司和監(jiān)管機(jī)構(gòu)逐漸走上正軌,經(jīng) GDPR 所加強(qiáng)的隱私保護(hù)也將成為常態(tài)。.NET Core 2.1版本有GDPR特性,具體參見 《在 ASP.NET Core 歐洲常規(guī)數(shù)據(jù)保護(hù)法規(guī) (GDPR) 支持》?https://docs.microsoft.com/zh-cn/aspnet/core/security/gdpr?view=aspnetcore-2.1?,這里還有一篇相關(guān)博客:?GDPR Support with ASP.NET Core 2.1?https://csharp.christiannagel.com/2018/05/24/gdpr/?
Windows Compatibility Pack
將現(xiàn)有代碼從 .NET Framework 移植到 .NET Core 時(shí),可以使用 Windows Compatibility Pack。它提供了額外的 20,000 個(gè)API,與 .NET Core 中可用的 API 相比。這包括System.Drawing,EventLog,WMI,性能計(jì)數(shù)器和 Windows 服務(wù)。使用.NET Framework 也有必要升級到.NET Core上享受.NETCore的高性能以及云服務(wù)的便利。
最后給大家推薦一個(gè)楊中科老師周六帶來的微服務(wù)課程,本次直播課程的盈利將會(huì)全部捐獻(xiàn)給.NetCore 微服務(wù)相關(guān)開源社區(qū)。我在ocelot的上看到了楊老師提的issue:?https://github.com/ThreeMammals/Ocelot/issues/375 ,不過ocelot的英國哥們還沒有回復(fù),ocelot項(xiàng)目雖然有兩年多了,大家都是業(yè)余時(shí)間在維護(hù),彼此把項(xiàng)目中特性貢獻(xiàn)出來。一直沒有考慮過社區(qū)捐贈(zèng)的事情。
?
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的.NET Core 2.1 正式发布的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Build 2018大会:.NET概述和
- 下一篇: ASP.NET Core Identit