乘風破浪,遇見最佳跨平臺跨終端框架.Net Core/.Net生態 - 桌面WPF應用從.Net 6.0升級到.Net 8.0

關於.Net 8

image

在.NET Conf 2023大會上微軟官宣了.Net 8

迄今爲止最快.Net

.NET8在整個堆棧中帶來了數千項性能改進。默認情況下會啓用一種名爲動態配置文件引導優化(PGO)的新代碼生成器,它可以根據實際使用情況優化您的代碼,並且可以將應用程序的性能提高最多20%。現在支持的AVX-512指令集使您能夠對512位數據向量執行並行操作,這意味着您可以在更短的時間內處理更多的數據。原始類型(數字及其他類型)現在實現了新的可格式化和可解析接口,這使它們能夠直接格式化和解析爲UTF-8,而無需任何轉碼開銷。

從.NET8的最新Tech Empower基準測試中,我們看到JSON API場景改進了18%,ASP.NETCore Minimal API每秒可處理近一百萬個請求。

image

Fortunes場景更接近實際工作負載,包括數據庫訪問和服務器端HTML渲染。在這個測試中,我們看到ASP.NET Core的性能提升了24%,現在每秒處理的請求數超過300K。

彈性雲原生堆棧.NET Aspire

.NET Aspire是一個使用.NET構建彈性、可觀察和可配置的雲原生應用程序的堆棧。它包括一組針對雲原生而增強的精選組件,默認情況下包括遙測、彈性、配置和運行狀況檢查。 .NET Aspire結合了先進而簡單的本機開發人員體驗,使您不管在剛開始還是使用了100天都能輕鬆發現、獲取和配置雲原生應用程序的基本依賴項。.NET Aspire的第一個預覽版現已發佈。

https://learn.microsoft.com/zh-cn/dotnet/aspire/get-started/aspire-overview

image

更強的容器支持

使用.NET容器打包您的應用程序比以往更輕鬆、更安全。每個.NET映像都包含一個非root用戶,從而通過單行配置啓用更安全的容器。.NET SDK工具無需Dockerfile即可發佈容器映像,並且默認情況下是非root的。由於.NET基礎映像更小,因此可以更快地部署容器化應用程序–包括我們映像的新實驗變體,這些變體可爲本機AOT提供真正最小的應用程序。選擇使用新的Chiseled Ubuntu映像變體進行更多安全強化,以進一步減少攻擊面。使用Dockerfile或SDK工具,爲任何架構構建應用程序和容器映像。

image

更高密度可持續計算的本機AOT

將您的.NET應用程序編譯爲本機代碼,使用更少的內存並立即啓動。無需等待JIT(即時)編譯器在運行時編譯代碼。無需部署JIT編譯器和IL代碼。AOT應用程序只部署應用程序所需的代碼。您的應用程序現在可以在無法使用JIT編譯器的受限環境中運行。

image

開箱即用的AI人工智能

生成式人工智能和大型語言模型正在改變人工智能領域,使開發人員能夠在其應用程序中創建獨特的人工智能體驗。.NET 8通過.NET SDK中一流的開箱即用AI功能以及與多種工具的無縫集成,使您可以輕鬆利用AI。

.NET 8爲System.Numerics庫帶來了多項增強功能,以提高其與生成式AI工作負載的兼容性,例如集成 Tensor Primitive。隨着人工智能應用程序的興起,湧現出了新的工具和SDK。我們與衆多內部和外部合作伙伴合作,例如Azure OpenAI、Azure Cognitive Search、Milvus、Qdrant和Microsoft Teams,以確保.NET開發人員可以通過各自的SDK輕鬆訪問各種AI模型、服務和平臺。此外,開源Semantic Kernel SDK簡化了這些AI組件與新的和現有應用程序的集成,以幫助您提供創新的用戶體驗。

image

發佈節奏

image

從這個圖來看,還在使用.Net 6的童靴也要着手升級到.Net 8了,因爲.Net 6將於2024年11月12日停止支持了。

image

檢查SDK版本

前往本地終端裏面,輸入

dotnet --list-sdks

即可查閱到已安裝的SDK版本

image

已安裝運行時的版本也可以一起查到

dotnet --list-runtimes

image

獲取.Net 8

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

有意思的是,微軟這個頁面就是由最新的.Net 8支持的

image

image

直接X64安裝包

Winget安裝

速度有點蝸牛~

winget install Microsoft.DotNet.SDK.8

image

單獨安裝桌面運行時

winget install Microsoft.DotNet.DesktopRuntime.8

單獨安裝.NET運行時

winget install Microsoft.DotNet.Runtime.8

單獨安裝ASP.NET Core 運行時

winget install Microsoft.DotNet.AspNetCore.8

嚐鮮桌面運行時預覽版

winget install Microsoft.DotNet.DesktopRuntime.Preview

創建.Net 8項目

image

框架這裏選.Net 8.0(長期支持)即可

image

老項目升級到.Net 8

如果是舊解決方案當前處於.Net 6,建議使用VsCode打開整個解決方案,我們根據TargetFramework做個整體替換即可。

image

<TargetFramework>net6.0</TargetFramework>搜索替換成<TargetFramework>net8.0</TargetFramework>

最好選上全詞匹配和大小寫匹配,以便操作失誤。

image

重新回到解決方案,全部重新編譯即可

image

如果解決裏面還有面向.Net 6的子集目標框架,還需要進一步替換,比如

<TargetFramework>net6.0-windows</TargetFramework>搜索替換成<TargetFramework>net8.0-windows</TargetFramework>

image

這一次,全部重新生成通過,完美

image

運行之後一切正常,好像是感覺速度快了一些。

其他應用升級

Docker

.NET容器映像中配置的默認ASP.NET Core端口已從端口80更新爲8080

添加了新的ASPNETCORE_HTTP_PORTS環境變量,作爲ASPNETCORE_URLS的更簡單的替代方法

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章