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

news2025/4/5 12:46:59

    随着 .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.coloradmin.cn/o/2328583.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端页面鼠标移动监控(鼠标运动、鼠标监控)鼠标防抖处理、mousemove、debounce()、事件停止触发、超时触发

文章目录 代码使用lodashjs库debounce函数做防抖处理&#xff08;只有鼠标移动停止并超过一定时间&#xff0c;才会触发&#xff09;手写防抖函数写法1写法2&#xff08;注意addEventListener监听函数的第二个参数接收的是一个函数&#xff0c;需要构造一个匿名返回函数&#x…

开源守护,智护童年——幼儿园未成年行为与安全智能监控系统

在孩子成长的每一步&#xff0c;安全始终是第一位的。幼儿园作为孩子们探索世界的起点&#xff0c;其安全管理的重要性不言而喻。然而&#xff0c;哭闹、打闹、意外跌倒&#xff0c;甚至外部隐患如陌生人逗留、内部管理疏漏等问题&#xff0c;常常让传统人工监控捉襟见肘。家长…

WinForm真入门(5)——控件的基类Control

控件的基类–Control 用于 Windows 窗体应用程序的控件都派生自 Control类并继承了许多通用成员,这些成员都是平时使用控件的过程最常用到的。无论要学习哪个控件的使用&#xff0c;都离不开这些基本成员&#xff0c;尤其是一些公共属性。由于 Conlrol 类规范了控件的基本特征…

《Linux内存管理:实验驱动的深度探索》【附录】【实验环境搭建 4】【Qemu 如何模拟numa架构】

我们在学习 linux 内核时&#xff0c;会涉及到很多 numa 的知识&#xff0c;那我们该如何在 qemu 中模拟这种情况&#xff0c;来配合我们的学习呢&#xff1f; 我们该如何模拟 如下的 numa 架构 Qemu 模拟 NUMA 架构 -M virt,gic-version3,virtualizationon,typevirt \ -cp…

【YOLO系列(V5-V12)通用数据集-工程用车检测数据集】

YOLO格式的工程车检测数据集&#xff0c;适用于YOLOv5-v11所有版本&#xff0c;可以用于本科毕设、发paper、做课设等等&#xff0c;有需要的在这里获取&#xff1a; 【YOLO系列&#xff08;V5-V12&#xff09;通用数据集-工程用车检测数据集】 【工程车类型检测数据集】共2655…

卫星智能化健康管理#卫星工程系列

伴随我国航天业飞速发展&#xff0c;积累了大量的卫星试验数据&#xff0c;如何从海量、多源、多模态的卫星试验数据中挖掘分析出内部规律和潜在价值&#xff0c;构建卫星装备系统的全生命周期试验数据知识体系显得尤为迫切。卫星故障传统的诊断方法局限在门限层面&#xff0c;…

Neo4j操作数据库(Cypher语法)

Neo4j数据库操作语法 使用的数据库版本 (终端查询) >neo4j --version 2025.03.0批量上传数据 UNWIND [{name: Alice, age: 30},{name: Bob, age: 25} ] AS person CREATE (p:Person) SET p.name = person.name, p.age = person.age RETURN p;查询结点总数 MATCH (n) RETU…

[GN] Python3基本数据类型 -- 与C的差异

文章目录 前言Python3的基本数据类型6个标准的数据类型NumbersStringListtupleSetsDictionaries Python运算符逻辑 运算符成员运算符身份运算符 Python3 数字Python3 序列序列切片序列相加序列相乘序列相关内置函数 Python3 列表访问列表的值更新列表删除列表元素拼接列表嵌套列…

MSF上线到CS工具中 实战方案(可执行方案)

目录 实际案例背景 步骤详解 1. 获取低权限 Meterpreter 会话 1.1 使用 Metasploit 获取会话 2. 提权到 SYSTEM 权限 2.1 使用 getsystem 自动提权 2.2 如果 getsystem 失败&#xff1a;使用令牌冒充 (incognito 模块) 3. 上线到 Cobalt Strike 3.1 生成 Cobalt Strik…

IntelliJ IDEA 2020~2024 创建SpringBoot项目编辑报错: 程序包org.springframework.boot不存在

目录 前奏解决结尾 前奏 哈&#xff01;今天在处理我的SpringBoot项目时&#xff0c;突然遇到了一些让人摸不着头脑的错误提示&#xff1a; java: 程序包org.junit不存在 java: 程序包org.junit.runner不存在 java: 程序包org.springframework.boot.test.context不存在 java:…

基于DeepSeek、ChatGPT支持下的地质灾害风险评估、易发性分析、信息化建库及灾后重建

前言&#xff1a; 地质灾害是指全球地壳自然地质演化过程中&#xff0c;由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。在降水、地震等自然诱因的作用下&#xff0c;地质灾害在全球范围内频繁发生。我国不仅常见滑坡灾害&#xff0c;还…

Websoft9分享:在数字化转型中选择开源软件可能遇到的难题

引言&#xff1a;中小企业数字化转型的必由之路 全球94.57%的企业已采用开源软件&#xff08;数据来源&#xff1a;OpenLogic 2024报告)&#xff0c;开源生态估值达8.8万亿美元。中小企业通过开源软件构建EPR系统、企业官网、数据分析平台等&#xff0c;可节省80%软件采购成本。…

Windows修改hosts文件让向日癸软件联网

Windows修改hosts文件让向日癸软件联网 前言一、查看向日葵软件使用的网址及IP1.清除dns记录2.打开向日葵软件并将dns记录导出txt 二、修改Windows服务器的hosts文件1.winx选择Windows PowerShell(管理员)2.在Windows PowerShell中输入如下内容&#xff1a;3.在hosts文件最后添…

2021 CCF CSP-S2.括号序列

题目 4091. 括号序列 算法标签: 区间 d p dp dp 思路 区间 d p dp dp添加维表示形态 f [ i ] [ j ] [ k ] f[i][j][k] f[i][j][k], 对于每种形态考虑状态如何进行转移, 枚举的时候不能重复, 星号也要定义唯一的解析方式, 算法时间复杂度 O ( n 3 ) O(n ^ 3) O(n3) 代码 #…

Uni-app 项目 PDF 批注插件库在线版 API 示例教程

本文章介绍 Uni-app 项目中 PDF 批注插件库 ElasticPDF 在线版 API 示例教程&#xff0c;API 包含 ① 导出批注后PDF数据&#xff1b;② 导出纯批注 json 数据&#xff1b;③ 加载旧批注&#xff1b;④ 切换文档&#xff1b;⑤ 切换用户&#xff1b;⑥ 清空批注 等数据处理功能…

学透Spring Boot — 010. 单元测试和Spring Test

系列文章目录 这是CSDN postnull 博客《学透Spring Boot》系列的一篇&#xff0c;更多文章请移步&#xff1a;Postnull - 学透Spring Boot系列文章 文章目录 系列文章目录前言1. 基本概念UT 单元测试TDD 测试驱动开发UT测试框架Mock框架 3. Spring Test为什么要用Spring Test引…

TortoiseGit多账号切换配置

前言 之前配置好的都是&#xff0c;TortoiseGit与Gitee之间的提交&#xff0c;突然有需求要在GitHub上提交&#xff0c;于是在参考网上方案和TortoiseGit的帮助手册后&#xff0c;便有了此文。由于GitHub已经配置完成&#xff0c;所以下述以配置Gitee为例。因为之前是单账号使用…

3D 地图渲染-区域纹理图添加

引入-初始化地图&#xff08;关键代码&#xff09; // 初始化页面引入高德 webapi -- index.html 文件 <script src https://webapi.amap.com/maps?v2.0&key您申请的key值></script>// 添加地图容器 <div idcontainer ></div>// 地图初始化应该…

【Linux】条件变量封装类及环形队列的实现

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…

离线部署kubesphere(已有k8s和私有harbor的基础上)

前言说明&#xff1a;本文是在已有k8s集群和私有仓库harbor上进行离线安装kubesphere&#xff1b;官网的离线教程写都很详细&#xff0c;但是在部署部份把搭建集群和搭建仓库也写一起了&#xff0c;跟着做踩了点坑&#xff0c;这里就记录下来希望可以帮助到需要的xdm。 1.根据官…