當前位置: 妍妍網 > 碼農

.NET 8使用牛逼的AOT釋出ASP.NET Core套用

2024-03-02碼農

簡介

.NET AOT編譯是一種.NET執行時的編譯方式,它與傳統的JIT編譯方式不同。

在傳統的JIT編譯中,.NET應用程式的程式碼在執行時才會被編譯成本地機器碼,而在AOT編譯中,程式碼在執行之前就被提前編譯成本地機器碼。

這樣可以在程式碼執行的時候不用再編譯,讓套用啟動更快;AOT編譯後的程式碼是二進制,這樣的話提高了反編譯程式碼的難度,讓套用更安全;它可以減少編譯後的檔大小從而節省IO空間;並可以減少記憶體的使用。

由於AOT編譯是發生的執行之前,所以不能編譯動態生成程式碼,比如反射等程式碼。

.NET 8使用AOT

ASP.NET Core 8.0 正式引入了對 .NET 本機AOT的支持。讓ASP.NET Core能直接使用AOT釋出程式。

當然.NET 7也支持AOT,不過使用麻煩些。下面小編介紹如何使用。

1、先決條件

要在.NET 8中使用AOT當然首先安裝.NET 8的SDK,由於正式版要到11月份才釋出,可以使用它的第一個候選版本(rc1),下載地址如下:

dotnet.microsoft.com/zh-cn/download/dotnet/8.0

另外需要下載安裝Visual Studio 2022 預覽版,並在安裝時選擇"ASP.NET 和 Web 開發」和「使用 C++ 的桌面開發",如下圖:

vs2022預覽版下載地址:

visualstudio.microsoft.com/zh-hans/vs/preview/

2、計畫準備

建立一個ASP.NET Core Web API計畫,註意的是必須選擇帶AOT標識的計畫。

如下圖:

建立後的計畫:

計畫多了個http檔,具體在哪裏添加API介面還需要研究一下。

當然也可以使用.NET Core CLI命令來建立計畫。

命令如下:

dotnet new webapiaot -o AOTtest && cd AOTtest

3、釋出計畫

Visual Studio 不支持釋出 AOT 套用,所以使用.NET Core CLI命令"dotnet publish"來釋出。

釋出成功的視窗如下:

接下來可以開啟釋出的release目錄來執行。

直接雙擊exe檔就可以執行,並且可以在未安裝.NET8的環境下執行。

成功執行效果如下:

其實.NET 8之前的版本也支持AOT,某些大佬實作過。

結語

本文介紹了AOT,並透過範例展示了在.NET8下使用AOT釋出ASP.NET Core套用的過程。

.NET8正式版本將在11月份釋出,期待它帶來更好的新特性,讓.NET煥發青春。

希望本文對你帶來收獲,你對.NET8的AOT新特性有什麽看法,歡迎留言討論或吐槽。

轉自:翔星

連結:mp.weixin.qq.com/s/6n09fOk0nHv1SM4cZHacEg