當前位置:
首頁 > 最新 > NET Core 2.1 Preview 2發布-April 10,2018

NET Core 2.1 Preview 2發布-April 10,2018

我們今天宣布發布 .NET Core 2.1 Preview 2。這也是我們在接下來的兩到三個月內接近最終發布的版本,該版本現已準備好進行廣泛的測試。我們希望您有任何反饋意見。

ASP.NET Core 2.1 Preview 2和Entity Framework 2.1 Preview 2也在今天發布。

您可以在Windows,MacOS和Linux上下載並開始使用.NET Core 2.1 Preview 2:

.NET Core 2.1 Preview 2 SDK (包括運行時)

.NET Core 2.1 Preview 2 Runtime

您可以在.NET Core 2.1 Preview 2發行說明中看到該發行版的詳細信息。發行說明中包含已知問題和解決方法。

您可以使用Visual Studio 2017 15.7 Preview 1或更高版本或Visual Studio Code 開發.NET Core 2.1應用程序。我們期望Visual Studio for Mac將在.NET Core 2.1 RTM 發布時增加支持。

非常感謝你一直以來參與我們的測試工作,直到我們發布.NET Core 2.1 RTM,我們將繼續需要你的幫助。

構建性能優化

.NET Core 2.1 中的構建時性能得到了很大的提升,特別是對於增量構建。這些改進同時適用於命令行上的dotnet build 和 Visual Studio 中的構建。 我們對 CLI 工具和 MSBuild 進行了改進,以使這些工具提供更快的體驗。

下面的圖表提供了您可以從.NET Core 2.0 以來所獲得的改進的具體數字。 我們專註於大型項目。

這些改進來自許多變化,包括以下幾點:

加快包資源解決方案

加快增量包資源解析

重用MSBuild節點

緩存MSBuild ResolveAssemblyReferences

如果您沒有看到使用.NET Core 2.1 Preview 2的顯著改進,我們很高興看看您的項目。

長時間運行的SDK構建伺服器

我們將長時間運行的伺服器添加到.NET Core SDK中,以提高常見開發操作的性能。 其中一些是移植自.NET Framework,另一些是新的。

已經添加以下SDK構建伺服器:

VBCSCompiler

MSBuild worker processes

Razor server

這些伺服器的主要優勢是,它們可以避免在每次調用時都需要JIT編譯大量代碼。它們會在一段時間後自動終止。

您可以通過以下命令手動終止構建伺服器進程:

dotnet buildserver shutdown

這個命令可可以在CI腳本中使用,以便在完成構建之後終止工作進程。您也可以運行構建以阻止創建MSBuild工作進程。

新的SDK命令

以下工具已添加到SDK中:

我們發現這些工具非常受歡迎行,不把它們添加到單個項目中似乎不是正確的設計,所以我們將它們作為SDK的一部分。

這些工具以前是DotNetCliToolReference工具。他們不再以這種方式交付。當您採用.NET Core 2.1時,您可以刪除項目文件中的條目。

全局工具

.NET Core 現在有一個新部署和擴展機制。這種新體驗與 NPM 全局工具非常相似,並且受到 NPM 全局工具的啟發。

對於預覽版2,全局工具的語法已更改,如以下示例中所示:

dotnet tool install -g dotnetsay dotnetsay

您可以通過查看 donetsay 工具示例 來創建自己的全局工具,(在安裝.NET Core 2.1 Preview 2之後)。

新工具參數

所有工具操作現在都使用該命令。Preview 2中添加了以下新功能:

- 安裝一個工具

- 卸載並重新安裝工具,並對其進行有效更新

- 卸載一個工具

- 列出當前安裝的工具

- 為每個調用指定一個特定的位置以(un)安裝和列出工具

次要版本前滾

從2.0開始可以在相同主要版本範圍內較新運行時版本上運行 .NET Core 應用程序。您可以在.NET Core 2.1 Preview 1文章中了解有關該行為的更多信息。

但是,.NET Core對於預覽版具有相反的行為。包括全局工具在內的應用程序不會從一個預覽轉到另一個預覽,或從預覽到RTM。這意味著您需要發布全局工具的新版本以支持後期預覽和RTM。

預覽策略有點爭議。背後的原因是我們可能會在給定的預覽版和最終的RTM版之間做出破壞性的變更。這一策略使我們能夠做到這一點,同時盡量減少生態系統的破損。還有一種可能的情況是,為預覽而構建的軟體沒有使用RTM構建進行測試,但是,這種基本原理不太引人注目。

自.NET Core項目啟動以來,該策略已經實施。全局工具使其更具挑戰性。我們非常感謝您對此的反饋和洞察力。

Sockets 性能和 SocketsHttpHandler

我們對.NET Core 2.1中的Sockets 進行了重大改進。Sockets是傳出和傳入網路通信的基礎。.NET Core 2.1中的更高層級網路 API(包括HttpClient和Kestrel)現在基於.NET sockets.。在早期版本中,這些更高級別的API基於原生網路實現。

我們從頭建立了一個新的管理的HttpMessageHandler,叫做SocketsHttpHandler。它是基於.NET套接字和Span 的HttpMessageHandler的實現。

SocketsHttpHandler現在是HttpClient的默認實現。SocketsHttpHandler最大的成就就是性能。它比現有的實現快得多。還有其他好處,例如:

消除了libcurl(用於Linux和MacOS)和WinHTTP(用於Windows)的平台依賴關係- 簡化了開發,部署和服務。

跨平台和平台/依賴版本的一致行為。

您可以使用以下某種機制來配置進程以使用舊版本:

從代碼中,使用類:

AppContext.SetSwitch(「System.Net.Http.UseSocketsHttpHandler」,false);

AppContext開關也可以通過配置文件進行設置。

通過環境變數也可以達到同樣的效果。要退出,請將該值設置為false或0。

在Windows上,您可以選擇使用或以逐個調用為基礎。為此,請實例化其中一種類型,然後在實例化時將其傳遞給HttpClient。

在Linux和MacOS上,您只能在進程基礎上配置HttpClient。在Linux上,如果您想使用舊的HttpClient實現,則需要自己部署libcurl。如果您的計算機上安裝了.NET Core 2.0,則libcurl已安裝。

自包含的應用程序服務

現在用服務運行時版本發布自包含應用程序。當您使用新SDK發布自包含應用程序時,您的應用程序將包含該SDK已知的最新服務運行時版本。當您升級到最新的SDK時,您將使用最新的.NET Core運行時版本進行發布。這適用於.NET Core 1.0運行時和更高版本。

自包含發布依賴於NuGet.org上的運行時版本。你不需要在你的機器上有服務運行時。

使用.NET Core 2.0 SDK,自包含應用程序將與.NET Core 2.0.0 Runtime一起發布,除非通過屬性指定了不同的版本。有了這種新行為,您將不再需要設置此屬性來為自包含應用程序選擇更高的運行時版本。最簡單的方法是始終使用最新的SDK發布。

Docker

我們正在整合我們用於.NET Core和ASP.NET Core的一系列Docker Hub存儲庫。我們將使用microsoft / dotnet作為我們唯一的.NET Core資源庫。

公開可用的統計數據表明,大多數用戶已經在使用dotnet回購,正如您通過以下泊塢扣拉取徽章所看到的那樣:

microsoft/dotnet ->

microsoft/aspnetcore ->

microsoft/aspnetcore-build ->

您可以通過aspnet / announcements#298了解有關此更改以及如何適應的更多信息。

我們還為.NET Core Docker鏡像添加了一組環境變數,適用於2.0及更高版本。這些環境變數可以讓更多方案無需其他配置即可工作,例如在容器中開發ASP.NET Core應用程序。

To images (example)

To Linux images (example)

To Windows images (example)

注意:這些環境變數將在本月晚些時候添加到2.0 鏡像中。

支持的操作系統和晶元架構

最大的補充是支持Ubuntu 18.04並增加了官方的ARM32支持。

我們將支持 .NET Core 2.1 的以下操作系統版本:

Windows客戶端:7,8.1,10(1607+)

Windows Server:2008 R2 SP1 +

macOS:10.12+

RHEL:7+

Fedora:26+

openSUSE:42.3+

Debian:8+

Ubuntu:14.04+

SLES:12+

Alpine 支持仍在預覽中。

我們將支持以下晶元架構:

在Windows上:x64和x86

在Linux上:x64和ARM32

在macOS上:x64

Azure應用服務和VSTS部署

ASP.NET Core 2.1預覽不會自動部署到Azure App Service。相反,您可以選擇僅使用一點點配置來使用.NET Core預覽。有關更多信息,請參閱在Azure應用程序服務上使用ASP.NET Core預覽。

Visual Studio Team Service對.NET Core 2.1的支持將更接近RTM。

.NET Core 2.1 Preview 1 的關鍵改進

有一些重要的改進對於從.NET Core 2.1 Preview 1中重述很重要。有關更多詳細信息,請參閱.NET Core 2.1 Preview 1 Announcement。

次要版本前滾

Span, Memory and friends

Windows Compatibility Pack

結束

請使用.NET Core 2.1 Preview 2測試您的現有應用程序。預先感謝您嘗試一下。我們需要您的反饋,在最終的2.1版本中通過線上的這些新功能測試到達終點。

.NET Core 2.1是.NET Core 2.0向前邁進的一大步。我們希望您找到能夠讓您升級的多項改進。

再一次感謝所有為發布做出貢獻的人。我們非常感謝您貢獻的所有問題和PR,幫助您製作此預覽版。

原文地址 http://www.cnblogs.com/shanyou/p/8809962.html


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 dotNET跨平台 的精彩文章:

使用CoreRT將.NET Core發布為Native應用程序
快速搭建CentOS+ASP.NET Core環境支持WebSocket

TAG:dotNET跨平台 |