微軟釋出.NET 8第一個預覽版,這個版本將是下一個.NET長期支援版本,預計會在11月的.NET大會上正式發表。.NET 8第一個預覽版使得NativeAOT編譯更高效率,提升雲端開發體驗,並且改進Linux支援。

微軟針對控制臺應用程式,在.NET 7中加入NativeAOT,微軟提到,AOT(Ahead-of-Time)編譯是.NET的一個重要功能,因為可以大幅提升.NET應用程式的效能。開發者可以使用NativeAOT創建完全自包含的應用程式版本,如此應用程式就不需要使用獨立的Runtime,所有需要的元件都包含在單一檔案中,這個檔案的大小在.NET 8縮減,Linux版本的大小甚至可以較之前減少達50%。

以Hello, World應用程式為例,.NET 7的NativeAOT自包含應用程式,Linux x64版本為3.76 MB,而Windows x64為2.85 MB,在.NET 8第一預覽版的大小分別為1.84 MB和1.77 MB。

微軟發展.NET的目標之一,是要成為更為友善的雲端開發平臺和工具,為此.NET 8也改進了容器映像檔體驗。.NET讓開發人員可以使用容器映像檔,以輕量級且可移植的格式打包應用程式,方便將應用程式部署到雲中。

在.NET 8第一預覽版中,容器預設Linux發行版更新為Debian 12,並且使用非根用戶執行容器映像檔,微軟提到,雖然容器基礎映像檔幾乎都是配置成以根用戶執行,不過該配置通常被沿用到生產中,並非是個好方法,但是要對每一個應用程式配置不同的使用者又很麻煩,而且容器映像檔並沒有提供適合容器工作負載的非根用戶。

因此微軟在.NET 8的新作法,預設對所有容器映像檔以非根使用者執行,以提高安全性,並將預設連接埠從80改變成為8080。

微軟也在.NET 8強化對Linux的支援,開發者現在可以在Linux上,直接從dotnet/dotnet儲存庫中建置.NET,這與紅帽(Red Hat)和Canonical用來建置.NET的方法一樣,使用dotnet/source-build來建置.NET Runtime、工具和SDK,微軟之後還會支援MacOS和Windows。

微軟提到,過去Linux雖然也可以從原始碼建置.NET,但是需要從dotnet/installer的提交中創建一個原始碼壓縮檔案,來對應每一個版本,但現在已經不需要如此,儲存庫中就有每一個版本相對應的標籤。

微軟也發布了帶有.NET 8的小型同捆映像檔Chiseled Ubuntu,這個版本Ubuntu檔案容量非常小,能夠大幅減少攻擊面,且沒有套件管理器和shell,且使用非根使用者權限,因此能夠減少多種類型的攻擊。

熱門新聞

Advertisement