使用 .NET 9 和 Azure 構建云原生應用程序:有什么新功能?

?? ?隨著 .NET 9 推出一系列以云為中心的增強功能,開發人員擁有比以往更多的工具來在 Azure 上創建可擴展、高性能的云原生應用程序。讓我們深入了解 .NET 9 中的一些出色功能,這些功能使構建、部署和優化云應用程序變得更加容易,并附有示例以幫助您入門。

1、原生 AOT 編譯,加快啟動時間

?? ?.NET 9 引入了 Native AOT(預先編譯),可將代碼編譯為本機二進制文件,從而減少應用程序的大小和啟動時間 - 這是云服務的一個重大改變。Native AOT 非常適合速度至關重要的 Azure Functions 或微服務。

?? ?示例:假設您正在構建一個微服務來處理 Azure 上的高頻 API 調用。通過啟用 Native AOT,您可以顯著減少啟動時間,從而縮短最終用戶的響應時間。在您的 .csproj 文件中,添加:

<PublishAot>true</PublishAot>

?? ?當您發布時,.NET 9 會將其直接編譯為本機二進制文件,以便更快地執行。

2. ASP.NET Core 中的 HybridCache

?? ?對于處理大量數據的應用程序,.NET 9 的新 HybridCache 是一個受歡迎的補充。此功能允許在本地和分布式環境中緩存數據,從而減少延遲并提高性能。

?? ?示例:假設您正在構建一個電子商務應用,用戶經常訪問產品詳細信息。您可以使用 HybridCache 在本地緩存產品信息以便快速訪問,并在需要時回退到分布式緩存。這可以減少往返數據庫的時間并保持較低的加載時間。

var cacheOptions = new HybridCacheOptions { Expiration = TimeSpan.FromMinutes(10) };
services.AddHybridCache(cacheOptions);

3.改進的 Azure Functions 集成

?? ?.NET 9 通過更好的工具來部署和管理無服務器應用程序,增強了對 Azure Functions 的支持。用 .NET 9 編寫的函數可以利用新的 Native AOT 編譯,使其成為高性能無服務器解決方案的理想選擇。

?? ?示例:假設您正在 Azure Functions 中設置用于圖像處理的 API 端點。使用 .NET 9,您可以編寫一個無服務器函數來快速處理請求,這要歸功于 Native AOT 和 .NET 9 較低的內存占用。要開始使用,請使用 Visual Studio 中的 Azure Functions 模板,選擇 .NET 9,然后啟用 AOT。

4. 優化 System.Text.Json 處理

?? ?.NET 9 對 System.Text.Json 進行了進一步的改進,現在支持更高級的 JSON 處理場景,包括更好的序列化和反序列化性能和靈活性。

?? ?示例:對于與多個微服務交換數據的云原生應用,您可能需要優化 JSON 處理以有效處理高數據吞吐量。System.Text.Json 中的改進使這一過程更快,從而降低了您的云資源成本。
?? ?
var options = new JsonSerializerOptions { DefaultBufferSize = 16 * 1024 };
string jsonData = JsonSerializer.Serialize(data, options);

5.增強 Azure SDK 集成

?? ?.NET 9 增強了 Azure SDK 兼容性,使直接在代碼中管理資源(例如 Azure Blob Storage、Cosmos DB 等)變得更加容易。新的 SDK 集成針對云原生應用的性能進行了高度優化。?? ?示例:若要在 Azure Blob 存儲中存儲和檢索文件,請使用已針對 .NET 9 進行優化的 Azure.Storage.Blobs 庫
?? ?
BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient("mycontainer");
await containerClient.UploadBlobAsync("myfile", stream);

6.總結

?? ?.NET 9 的新功能為在 Azure 上構建強大的云原生應用程序開辟了難以置信的可能性。借助 Native AOT、HybridCache 和改進的 JSON 處理等優化,您可以設計快速、高效且經濟實惠的解決方案。

?? ?對于那些希望在云中擴展 .NET 應用的人來說,這些更新是探索優化應用程序的新方法的絕佳機會。在下一個 Azure 項目中嘗試這些功能,并親身體驗 .NET 9 如何簡化云開發。

如果您喜歡此文章,請收藏、點贊、評論,謝謝,祝您快樂每一天。?

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

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

相關文章

PostgreSQL:表分區與繼承

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;精通Java編…

Linux / Windows 下 Mamba / Vim / Vmamba 安裝教程及安裝包索引

目錄 背景0. 前期環境查詢/需求分析1. Linux 平臺1.1 Mamba1.2 Vim1.3 Vmamba 2. Windows 平臺2.1 Mamba2.1.1 Mamba 12.1.2 Mamba 2- 治標不治本- 終極版- 高算力版 2.2 Vim- 治標不治本- 終極版- 高算力版 2.3 Vmamba- 治標不治本- 終極版- 高算力版 3. Linux / Windows 雙平…

開源項目更新到個人倉庫二次開發并保持同步

當你克隆了一個開源項目并將其推送到自己的倉庫后&#xff0c;定期更新該開源項目并與你的本地修改同步是一個常見的需求。為了高效地管理這一過程&#xff0c;你可以使用 Git 的 upstream 遠程倉庫和 rebase 技術來保持代碼的整潔和線性歷史。 1. 設置上游遠程倉庫 首先&…

多輸入多輸出 | Matlab實現BO-GRU貝葉斯優化門控循環單元多輸入多輸出預測

多輸入多輸出 | Matlab實現BO-GRU貝葉斯優化門控循環單元多輸入多輸出預測 目錄 多輸入多輸出 | Matlab實現BO-GRU貝葉斯優化門控循環單元多輸入多輸出預測預測效果基本介紹程序設計參考資料 預測效果 基本介紹 Matlab實現BO-GRU貝葉斯優化門控循環單元多輸入多輸出預測&#…

MCP(模型上下文協議)入門指南:用Web開發的視角理解下一代AI引擎

引言&#xff1a;當Java Web遇到長期記憶 想象你正在開發一個在線法律咨詢平臺。用戶上傳一份300頁的合同后&#xff0c;連續提出了10個問題&#xff1a; 第3頁的違約條款具體內容是什么&#xff1f;請對比第15頁和第120頁的支付條件整份合同中最高的賠償金額是多少&#xff…

簡易Minecraft python

廢話多說 以下是一個基于Python和ModernGL的簡化版3D沙盒游戲框架。由于代碼長度限制&#xff0c;這里提供一個核心實現&#xff08;約500行&#xff09;&#xff0c;您可以通過添加更多功能和內容來擴展它&#xff1a; python import pygame import moderngl import numpy a…

element-ui自制樹形穿梭框

1、需求 由于業務特殊需求&#xff0c;想要element穿梭框功能&#xff0c;數據是二級樹形結構&#xff0c;選中左邊數據穿梭到右邊后&#xff0c;左邊數據不變。多次選中左邊相同數據進行穿梭操作&#xff0c;右邊數據會多次增加相同的數據。右邊數據穿梭回左邊時&#xff0c;…

WPS宏開發手冊——Excel實戰

目錄 系列文章5、Excel實戰使用for循環給10*10的表格填充行列之和使用for循環將10*10表格中的偶數值提取到另一個sheet頁使用for循環給寫一個99乘法表按市場成員名稱分類&#xff08;即市場成員A、B、C...&#xff09;&#xff0c;統計月內不同時間段表1和表2的乘積之和&#x…

計算機網絡-TCP的流量控制

內容來源&#xff1a;小林coding 本文是對小林coding的TPC流量控制的精簡總結 什么是流量控制 發送方不能無腦的發數據給接收方&#xff0c;要考慮接收方處理能力 如果一直無腦的發數據給對方&#xff0c;但對方處理不過來&#xff0c;那么就會導致觸發重發機制 從而導致網…

Spring Boot 七種事務傳播行為只有 REQUIRES_NEW 和 NESTED 支持部分回滾的分析

Spring Boot 七種事務傳播行為支持部分回滾的分析 支持部分回滾的傳播行為 REQUIRES_NEW&#xff1a;始終開啟新事務&#xff0c;獨立于外部事務&#xff0c;失敗時僅自身回滾。NESTED&#xff1a;在當前事務中創建保存點&#xff08;Savepoint&#xff09;&#xff0c;可局部…

突破反爬困境:SDK開發,瀏覽器模塊(七)

聲明 本文所討論的內容及技術均純屬學術交流與技術研究目的&#xff0c;旨在探討和總結互聯網數據流動、前后端技術架構及安全防御中的技術演進。文中提及的各類技術手段和策略均僅供技術人員在合法與合規的前提下進行研究、學習與防御測試之用。 作者不支持亦不鼓勵任何未經授…

C++數據排序( 附源碼 )

一.冒泡排序 原理:自左向右依次遍歷,若相鄰兩數順序錯誤,則交換兩數. 這樣,每一輪結束后,最大/最小的數就會到最后. Code: #include <iostream> #include <cstdio> using namespace std; const int N1e51; int n,a[N],in; void PrintArray(int a[],int n){for…

I2C 讀寫 AT24C02

根據AT24C02的 Datasheet 可知AT24C02有2K bit&#xff0c;即256B&#xff0c;分為32頁,每頁8個字節&#xff0c;結合數據手冊和原理圖可以得知&#xff0c;板載AT24C02的讀地址為0xA2&#xff0c;寫地址為0xA3&#xff1a; #define AT24C02_ADDR_WRITE 0xA2 #define AT24C02_…

K8S學習之基礎七十四:部署在線書店bookinfo

部署在線書店bookinfo 在線書店-bookinfo 該應用由四個單獨的微服務構成&#xff0c;這個應用模仿在線書店的一個分類&#xff0c;顯示一本書的信息&#xff0c;頁面上會顯示一本書的描述&#xff0c;書籍的細節&#xff08;ISBN、頁數等&#xff09;&#xff0c;以及關于這本…

Linux 查找文本中控制字符所在的行

參考資料 ASCIIコード表 目錄 一. 業務背景二. 遇到的問題三. 分析3.1 url編碼的前置知識3.2 出現控制字符的transactionid分析3.3 16進制分析 四. 從文本中查找控制字符所在的行五. 控制字符一覽 一. 業務背景 ?在項目中&#xff0c;業務請求對應著下URL http://www.test.…

python將pdf文件轉為圖片,如果pdf文件包含多頁,將轉化的多個圖片通過垂直或者水平合并成一張圖片

要將PDF文件轉換為圖片&#xff0c;并將多頁PDF垂直合并成一張圖片&#xff0c;可以使用PyMuPDF&#xff08;也稱為fitz&#xff09;庫來讀取PDF文件&#xff0c;并使用Pillow庫來處理和合并圖片。以下是一個示例代碼&#xff0c;展示了如何實現這個功能&#xff1a; 首先&…

HarmonyOS 基礎組件和基礎布局的介紹

1. HarmonyOS 基礎組件 1.1 Text 文本組件 Text(this.message)//文本內容.width(200).height(50).margin({ top: 20, left: 20 }).fontSize(30)//字體大小.maxLines(1)// 最大行數.textOverflow({ overflow: TextOverflow.Ellipsis })// 超出顯示....fontColor(Color.Black).…

FrameWork基礎案例解析(四)

文章目錄 單獨拉取framework開機與開機動畫橫屏Android.mk語法單獨編譯SDKmake 忽略warning單獨修改和編譯Camera2單獨編譯Launcher3Android Studio 導入、修改、編譯Settings導入 Android Studio 導入、修改、編譯Launcher3android 開機默認進入指定Launcher植入自己的apk到系…

基于vscode(GDB)調試ros2節點

一、環境準備 必備vscode插件 1&#xff09;Docker Docker - Visual Studio Marketplace 2&#xff09;Dev Containers Dev Containers - Visual Studio Marketplace 3&#xff09;GDB GDB Debug - Visual Studio Marketplace 二、進去docker鏡像 1&#xff09;docker安…

基于springboot的考研成績查詢系統(源碼+lw+部署文檔+講解),源碼可白嫖!

摘要 這些年隨著Internet的迅速發展&#xff0c;我們國家和世界都已經進入了互聯網大數據時代&#xff0c;計算機網絡已經成為了整個社會以及經濟發展的巨大動能&#xff0c;考研成績查詢管理事務現在已經成為社會關注的重要內容&#xff0c;因此運用互聯網技術來提高考研成績…