微軟最近發出了一系列開發工具的更新,包括Visual Studio 2019、Visual Studio for Mac和Visual Studio Code,以及C# 8.0,.NET Core 3也到了第三預覽版,加入了Docker容器、Range和Index的改進,提供了.NET Standard 2.1的支援,也說明了.NET Core 3.0的更新計畫,同時還交代了Windows桌面和Entity Framework專案。

在.NET Core 3第三預覽版,改進了對Docker和cgroup記憶體使用的限制。 許多開發人員使用容器打包和執行應用程式,而關鍵使用情境則是限制容器的CPU或記憶體資源,雖然微軟在2017年就實作支援記憶體限制,但是實際效果卻不如預期,無法適當的維持在記憶體限制之下。

當記憶體使用小於500MB時,應用程式會被OOM移除,在去年,微軟開始測試限制記憶體使用低於100MB應用程式,但結果依然不好,而現在微軟對此進一步做出改進,由於Docker資源限制功能建構在Linux的核心功能cgroup之上,因此主要是針對cgroup調整。

主要的改變是修復了垃圾回收堆最大值配置,將其預設為遠低於整體記憶體限制,微軟提到,Java也是以相同的方法解決這個問題。.NET Core 3第三預覽版重點是讓Docker限制適用於Linux,在接下來版本,Windows容器也會獲得相同功能的更新。

.NET Core 3第三預覽版是第一個支援.NET Standard 2.1函式庫的預覽版,預設情況下,dotnet new classlib會繼續創建NET Standard 2.0函式庫專案,微軟認為,這樣的設定目前對開發者來說比較方便,因為.NET Framework不支持.NET Standard 2.1,要使用.NET Standard 2.1,開發者必須編輯專案檔案,還必須把TargetFramework屬性更改為netstandard2.1,另外,只有Visual Studio 2019才支援.NET Standard 2.1。

在第一預覽版的時候,微軟為.NET Core 3加入了Index和Range類型,以支援新的C# 8.0編譯器Index和Range索引語法,在這個版本增加了更多的API,使其能夠與其他類型一併使用。

微軟繼續改進WPF和WinForms專案,他們正把這些程式碼庫從專有建置系統,轉為基於dotnet/arcade的開源程式碼系統,這些工作已經快要完成,預計在第四預覽版釋出。另外,在前三個預覽版Entity Framework團隊優先更新了API和行為,以改進框架本身設計或是替未來更新鋪路,這些改變可能導致現有應用程式故障,接下來還會有一些新功能會釋出。

微軟現在會將容器映像檔發布到Microsoft Container Registry(MCR)上,而這個改變可以將微軟提供的容器映像檔連結到Docker Hub或是紅帽等註冊表,也能利用微軟Azure作為全球CDN發布容器映像檔。.NET團隊現在將所有.NET Core映像檔都發布到MCR上,包括了現在釋出的.NET Core 3第三預覽版。

.NET Core 3現在每一個月發布一個預覽版,微軟預估正式版本會落在2019年下半年。Visual Studio 2019將於4月2日發布,.NET Core 2.1和2.2將包含在其中,當未來.NET Core 3正式發布後,微軟會對Visual Studio 2019發出更新,屆時.NET Core 3.0將包含在Visual Studio 2019中。


Advertisement

更多 iThome相關內容