微軟發布最新.NET 8長期支持版本,云計算、AI應用支持再強化

11 月 15 日開始的為期三天的 .NET Conf 在線活動的開幕日上,.NET 8作為微軟的開源跨平臺開發平臺正式發布。.NET 團隊著重強調云、性能、全棧 Blazor、AI 和 .NET MAUI 是.NET 8的主要亮點。.NET團隊在 .NET Conf 2023 [1]活動開幕式上表示:“通過這個版本,.NET 重塑了我們構建按需擴展的智能、云原生應用程序和高流量服務的方式。 無論你是部署到 Linux 還是 Windows,使用容器還是你選擇的云應用模型,.NET 8 都能更輕松地構建這些應用。”

在數字化轉型的智能化方向上我們可以用.NET 8 做下列這些場景:

  • 將 OpenAI 的 GPT 等大型語言模型 (LLM) 直接集成到 .NET 應用中,這個主要是通過開源項目 Semantic Kernel(簡稱SK)。
  • 使用單個功能強大的組件模型來處理 Blazor 的所有 Web UI 需求, Blazor 在.NET 8真的是成熟了,可以大力發揮全棧開發的能力了。
  • 使用 .NET MAUI 將移動應用程序部署到最新版本的 iOS 和 Android,在移動應用開發方面解決多年的包袱。
  • 發現新的語言增強功能,使你的代碼在 C# 12 中更加簡潔和富有表現力。

對企業來說特別重要的是,.NET 8 [2]是一個長期支持 (LTS) 版本,這意味著它將獲得三年的支持和補丁,而標準期限支持 (STS) 版本則是 18 個月。對于開發人員來說,特別重要的是 .NET團隊正在向期待已久的原生提前編譯(NativeAOT)邁進 。

2020年的時候.NET團隊做過一項調查中發現Survey: Native AOT [results][3],.NET Core 中缺少NativeAOT 阻礙了開發平臺的采用,促使 .NET 團隊大力推動 AOT。

.NET 8通過推進NativeAOT來增強可持續計算,以減少內存使用并實現即時應用程序啟動,今天強調了AOT的功能,包括:

  • 它將應用程序編譯為使用更少內存的本機代碼并立即啟動
  • 無需等待 JIT(實時)編譯器在運行時編譯代碼
  • 無需部署 JIT 編譯器和 IL 代碼
  • AOT 應用僅部署應用所需的代碼
  • 現在,應用程序可以在不允許使用 JIT 編譯器的受限環境中運行

還描述了原生 AOT 大小優化。

在描述.NET 8的整體情況時,.NET 團隊表示:“NET 8提供了數千項性能,穩定性和安全性改進,以及平臺和工具增強功能,有助于提高開發人員的生產力和創新速度。在公告博客[4]文章中,這數千項改進圍繞上述五個主題進行了分組。以下是每個領域的介紹。

性能 .NET團隊的 Stephen Toub 每年都會針對.NET性能方進行徹底、煞費苦心和詳盡的詳細說明,他總結了數千個性能數據點,宣稱: .NET 7 速度超快, .NET 8 更快。[5]

.NET 8 引入了新的代碼生成器,即動態配置文件引導優化 (PGO),它根據實際使用情況優化代碼。此功能最多可將應用性能提高 20%。AVX-512 指令集支持對 512 位數據向量進行并行運算,在 .NET 8 中受支持和使用,從而允許在更短的時間內進行更多的數據處理。此外,基元類型現在實現了新的格式化和可解析接口,使它們能夠直接格式化和解析為 UTF-8,而不會產生任何轉碼開銷。這個結果可以看 TechEmpower 22輪Web框架 性能評測:.NET 8 戰績斐然的[6]說明

云原生 .NET 8 以多種方式促進了云原生開發,例如包括許多容器增強功能,但這里的重大新聞是 .NET Aspire 的第一個預覽版的可用性,這是一個用于構建彈性、可觀察和可配置的云原生應用程序的堆棧。 .NET Aspire 附帶了一組針對云原生開發增強的精選組件,默認情況下包括遙測、復原、配置和運行狀況檢查,這個項目來自幾年前的實驗性項目Tye。

.NET團隊表示:“結合復雜而簡單的本地開發人員體驗,Aspire 可以在第 1 天起輕松發現、獲取和配置云原生應用程序的基本依賴項。

在云原生的容器方面,.NET 8 通過簡化應用程序的打包和使用默認的非 root 用戶配置增強安全性來簡化容器化。它還提供更小的映像大小以加快部署速度,并提供可選的Dirstroless Ubuntu 映像以增強安全性,以及多功能架構支持。

人工智能

隨著生成式AI的到來,人工智能領域發生了翻天覆地的變化,從底層語言、運行時,到庫的處理,到接口,到跨平臺應用,對于 人工智能,.NET都有相對成熟的解決方案了。當下的這個生態位還是藍海!.NET攜帶完整的工具和生態,殺進來,爽的不要不要的。用 .NET寫整個的應用層代碼,不需要寫一行 C++ 代碼,就可以架構整個完整的產品體系和服務體系。如果競爭對手選擇的是其它技術架構,那么,你相對他,會有很強的生產力優勢。.NET平臺.NET 團隊指出了展示模式和實踐的各種示例和參考模板 可幫助開發人員入門,Semantic kernel 下個月發布正式版,目前是Beta6。

它們包括:

  • 客戶聊天機器人[7]
  • 檢索增強生成RAG[8]
  • 使用 Azure AI 服務開發應用[8]

Blazor Blazor 已經發展成為一個全棧 Web 開發框架,這要歸功于由 .NET團隊的 Steve Sanderson 領導的渲染改進,他是 Blazor 的創建者,最初稱為“Blazor United”。它同時提供客戶端 (Blazor WebAssembly) 和服務器端 (Blazor Server),能夠根據條件提示切換設備。

ASP.NET 產品經理 Daniel Roth 今年早些時候是這么說:“在 .NET 8 中,我們正在擴展 Blazor 的功能,以便它能夠處理所有 Web UI 需求,包括客戶端和服務器端呈現。作為這項工作的一部分,我們正在將現有的 Blazor Server 和 Blazor WebAssembly 托管模型與新功能合并,例如無狀態服務器端呈現、流式渲染、導航和表單處理的漸進式增強,以及使用 Blazor 或 Blazor WebAssembly 對每個組件進行交互的能力。

今天的公告總結了所有這些內容:“通過專注于優化頁面加載時間、可伸縮性和提升用戶體驗的幾項新增強功能,開發人員現在可以在同一應用中使用 Blazor Server 和 Blazor WebAssembly,在運行時自動將用戶從服務器轉移到客戶端。由于新的基于“Jiterpreter”的運行時和新的內置組件,您的 .NET 代碼在 WebAssembly 上的運行速度明顯更快。作為增強 .NET 8 中整體身份驗證、授權和標識管理[9]的一部分,Blazor 現在支持生成基于 Blazor 的完整標識 UI。

.NET MAUI .NET團隊表示,.NET多平臺應用程序UI擴展了開發人員的工具箱,為使用.NET構建跨平臺移動和桌面應用程序提供了全棧解決方案。 MAUI被稱為 Xamarin.Forms 的“演變”,因為它增加了桌面支持,以提供跨 Android、iOS、macOS 和 Windows 的統一開發體驗,幫助開發人員覆蓋更廣泛的受眾。加上開源項目AvaloniaUI 和UNO的補充, .NET 可以覆蓋所有平臺的UI應用開發,特別是國內信創市場的桌面端.NET具有極強的競爭力

在 .NET 8 中,該框架通過對最新移動操作系統的額外支持擴展了其覆蓋范圍,并改進了性能、可靠性和開發人員體驗。NativeAOT(實驗性)現在支持針對類似 iOS 的平臺。適用于 .NET MAUI 的新 Visual Studio Code 擴展[10]提供了開發跨平臺 .NET 移動和桌面應用所需的工具。現在支持 Xcode 15 和 Android API 34,允許您面向最新版本的 iOS 和 Android。在性能、控件和 UI 元素以及特定于平臺的行為方面[11]進行了大量質量改進,例如桌面交互增加了更好的點擊處理、鍵盤偵聽器等。

C#12 借助于C#12 ,你現在可以用簡單而優雅的語法在任何類和結構中創建主要構造函數,不再需要樣板代碼來初始化字段和屬性。使用簡潔而富有表現力的語法創建數組、spans和其他集合類型。對 lambda 表達式中的參數使用新的默認值。不再需要重載或 null 檢查來處理可選參數。您甚至可以使用 using alias 指令為任何類型設置別名,而不僅僅是命名類型!

C# 12 中的新增功能[12]”指南解釋了版本 12 中的以下新功能:

  • 主構造函數 - 在 Visual Studio 17.6 預覽版 2 中引入。
  • Lambda 表達式中的可選參數 - 在 Visual Studio 17.5 預覽版 2 中引入。
  • 任何類型的別名 - 在 Visual Studio 17.6 預覽版 3 中引入。
  • 內聯數組 - 在 Visual Studio 17.7 預覽版 3 中引入。
  • 集合表達式 - 在 Visual Studio 17.7 預覽版 5 中引入。
  • 攔截器 - 預覽功能在 Visual Studio 17.7 預覽版 3 中引入。

總結

圍繞 .NET 8 有一大堆新特性和功能, Microsoft 還宣布 Visual Studio 2022 17.8 已正式發布。該公司還指出其 VS Code 和 C# 開發工具包可以幫助新手入門。Microsoft表示,另一種入門方法是使用SDK中新的.NET的GitHub Codespaces模板[13]。

今天的公告帖子還包括指向更多資源的鏈接,這些資源有助于充實 .NET 8 中跨 ASP.NET Core、Entity Framework Core、NuGet、.NET 運行時、.NET SDK、WPF、ARM64、調試等的新增功能。

  • Announcing .NET 8
  • Introducing .NET Aspire: Simplifying Cloud-Native Development with .NET 8
  • Announcing C# 12
  • Entity Framework Core 8 (EF8) is available today
  • Announcing ASP.NET Core in .NET 8
  • Announcing .NET MAUI in .NET 8

相關鏈接:

  • [1].NET Conf 2023: https://www.dotnetconf.net/
  • [2].NET 8:https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0
  • [3]Survey: Native AOT [results]:https://github.com/dotnet/runtime/issues/41522
  • [4].NET8公告博客:https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/
  • [5].NET 7 速度超快, .NET 8 更快:https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-8/
  • [6]TechEmpower 22輪Web框架 性能評測:.NET 8 戰績斐然:https://www.cnblogs.com/shanyou/p/17828353.html
  • [7]客戶聊天機器人:https://github.com/dotnet-architecture/eShop
  • [8]檢索增強生成RAG: https://github.com/Azure-Samples/azure-search-openai-demo-csharp
  • [9]使用 Azure AI 服務開發應用: https://devblogs.microsoft.com/dotnet/demystifying-retrieval-augmented-generation-with-dotnet/
  • [10]Visual Studio Code 擴展: https://aka.ms/maui-devkit-blog
  • [11]行為方面性能改進: https://devblogs.microsoft.com/dotnet/dotnet-8-performance-improvements-in-dotnet-maui
  • [12]C# 12 中的新增功能: https://learn.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-12
  • [13]SDK中新的.NET的GitHub Codespaces模板: https://github.com/codespaces

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/164699.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164699.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164699.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nginx 模塊相關配置及結構理解

文章目錄 模塊配置結構模塊配置指令先看一下 ngx_command_t 結構一個模塊配置的demo簡單模塊配置的案例演示 模塊上下文結構模塊的定義 模塊配置結構 Nginx中每個模塊都會提供一些指令,以便于用戶通過配置去控制該模塊的行為。 Nginx的配置信息分成了幾個作用域(sc…

使用注解的AOP編程

使用注解的AOP編程 當注解沒有參數時 當使用注解進行面向切面編程(AOP)時,你可以按照以下步驟來實現: 步驟: 1. 創建自定義注解: 首先,創建自定義的注解,以便在代碼中標記需要進…

Excel換不了行怎么解決?

方法一: 使用Alt Enter鍵 在Excel中,輸入文字時按下回車鍵,光標將會移到下一個單元格,如果想要換行,可以嘗試使用Alt Enter鍵。具體操作如下: 1.在單元格中輸入文字; 2.想要換行時,在需要換行的位置按下Alt Enter鍵; 3…

延時任務定時發布,基于 Redis 與 DB 實現

目錄 1、什么是延時任務,分別可以使用哪些技術實現? 1.2 使用 Redis 和 DB 相結合的思路圖以及分析 2、實現添加任務、刪除任務、拉取任務 3、實現未來數據的定時更新 4、將數據庫中的任務數據,同步到 Redis 中 1、什么是延時任務&#xff…

網絡運維與網絡安全 學習筆記2023.11.23

網絡運維與網絡安全 學習筆記 第二十四天 今日目標 VRRP負載均衡、BFD原理與配置、BFD典型應用 DHCP工作原理、全局模式DHCP VRRP負載均衡 VRRP單組缺陷 每網段存在一個VRRP組,缺點如下: 主網關數據轉發壓力大 備份網關不轉發任何數據 網絡設備利用…

Hook技術(鉤子技術)

HOOK(鉤子技術) 這里的hook我理解的意思就是通過攔截指令,將指令換成自己想要的指令,從而做道繞過原本的程序指令,要修改這個指令,要用匯編技術,從二進制入手。 擴展: 木馬病毒之…

git clone慢的解決辦法

在網站 https://www.ipaddress.com/ 分別搜索: github.global.ssl.fastly.net github.com 得到ip: 打開hosts文件 sudo vim /etc/hosts 在hosts文件末尾添加 140.82.114.3 github.com 151.101.1.194 github.global-ssl.fastly.net 151.101.65.194 g…

外部網關協議_邊界網關協議BGP

一.邊界網關協議BGP的基本概念 邊界網關協議(Border Gateway Protocol,BGP)屬于外部網關協議EGP這個類別,用于自治系統AS之間的路由選擇協議。由于在不同AS內度量路由的“代價”(距離、帶寬、費用等)可能不同,因此對于…

elasticsearch 7安裝

問題提前報 max virtual memory areas error max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 如果您的環境是Linux,注意要做以下操作,否則es可能會啟動失敗 1 用編輯工具打開文件/etc/sysctl.conf 2 …

qml渲染引擎介紹

qml項目啟動入口 Qt Quick項目qml腳本在C++代碼里啟動,main.cpp如下: #include <QGuiApplication> #include <QQmlApplicationEngine>int main(int argc, char *argv[]) {

VUE excel表格導出

js代碼 //下載模板 downloadExl() { // 標題 const tHeader [‘xxx’,xxx,xx名稱,電槍xx,協議xx,snxx]; // key const filterVal [agentName, stationName, equName, channelNumber, manufacturer, sn, ]; // 值 const datas [ { agentName: 你好, stationName: 我們, e…

激光雷達與慣導標定 | Lidar_IMU_Init : 編譯

激光雷達與慣導標定&#xff1a;Lidar_IMU_Init 編譯 功能包安裝安裝ceres-solver-2.0.0 &#xff08;注意安裝2.2.0不行&#xff0c;必須要安裝2.0.0&#xff09; LI-Init是一種魯棒、實時的激光雷達慣性系統初始化方法。該方法可校準激光雷達與IMU之間的時間偏移量和外部參數…

unity shaderGraph實例-可交互瀑布

不要問我水在哪里&#xff0c;你自己相像這是一個瀑布&#xff0c;瀑布的效果我還不會做 效果展示 整體結構 這里片元著色器最后輸出的baseColor應該是黑色&#xff0c;白色為錯誤。 各區域內容 區域1 計算球到瀑布的距離&#xff0c;然后減去一個值&#xff0c;實現黑色區域…

UNETR:用于三維醫學圖像分割的Transformer

論文鏈接&#xff1a;https://arxiv.org/abs/2103.10504 代碼鏈接&#xff1a; https://monai.io/research/unetr 機構&#xff1a;Vanderbilt University, NVIDIA 最近琢磨不出來怎么把3d體數據和文本在cnn中融合&#xff0c;因為確實存在在2d里面用的transformer用在3d里面…

wpf使用CefSharp.OffScreen模擬網頁登錄,并獲取身份cookie,C#后臺執行js

目錄 框架信息&#xff1a;MainWindow.xamlMainWindow.xaml.cs爬取邏輯模擬登錄攔截請求Cookie獲取 CookieVisitorHandle 框架信息&#xff1a; CefSharp.OffScreen.NETCore 119.1.20 MainWindow.xaml <Window x:Class"Wpf_CHZC_Img_Identy_ApiDataGet.MainWindow&qu…

API自動化測試:如何構建高效的測試流程

一、引言 在當前的軟件開發環境中&#xff0c;API&#xff08;Application Programming Interface&#xff09;扮演了極為重要的角色&#xff0c;連接著應用的各個部分。對API進行自動化測試能夠提高測試效率&#xff0c;降低錯誤&#xff0c;確保軟件產品的質量。本文將通過實…

SpringMVC(三)

十、攔截器 1、攔截器的配置 SpringMVC中的攔截器用于攔截控制器方法的執行 SpringMVC中的攔截器需要實現HandlerInterceptor SpringMVC的攔截器必須在SpringMVC的配置文件中進行配置&#xff1a; <bean class"com.atguigu.interceptor.FirstInterceptor">…

constexpt

constexpt constexpt是C11引入的新的關鍵字&#xff0c;它用于在編譯時而非運行時計算函數或變量的值。這個特性對于提高程序效率和優化代非常有用。 編譯時常量和運行時常量 編譯時常量&#xff08;Compile-time Constants&#xff09;和運行時常量&#xff08;Runtime Con…

8年經驗之談 —— 如何使用自動化工具編寫測試用例?

以下為作者觀點&#xff0c;僅供參考&#xff1a; 在快速變化的軟件開發領域&#xff0c;保證應用程序的可靠性和質量至關重要。隨著應用程序復雜性和規模的不斷增加&#xff0c;僅手動測試無法滿足行業需求。 這就是測試自動化發揮作用的地方&#xff0c;它使軟件測試人員能…

leetcode做題筆記1410. HTML 實體解析器

「HTML 實體解析器」 是一種特殊的解析器&#xff0c;它將 HTML 代碼作為輸入&#xff0c;并用字符本身替換掉所有這些特殊的字符實體。 HTML 里這些特殊字符和它們對應的字符實體包括&#xff1a; 雙引號&#xff1a;字符實體為 &quot; &#xff0c;對應的字符是 "…