.NET 8使用牛逼的AOT发布ASP.NET Core应用

简介

.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新特性有什么看法,欢迎留言讨论或吐槽。

参考链接:learn.microsoft.com/zh-cn/aspnet/core/fundamentals/aot/native-aot-tutorial?view=aspnetcore-8.0&viewFallbackFrom=aspnetcore-7.0&tabs=netcore-cli

来源公众号:DotNet开发跳槽❀    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/160476.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

首次建站用香港服务器有影响没?

​  对于首次租用香港服务器的朋友来说,难免会对它没有一个很清晰的认知。因此,本文就从香港服务器适用人群,以及建站影响,选择技巧上做一个全方位的解答。 1. 哪一类人群适合使用香港服务器建站? 做外贸业务的网站。香港走的国…

【弃坑xdm】docker容器作为开发环境,更加灵活可靠

关于我准备转行深度学习~~ 弃坑xdm 弃坑xdm 弃坑xdm 转发给你的同学,吓他们一跳~~ ps:其实我准备使用docker容器作为开发环境,vscode可以直接连接docker容器,更加灵活可靠。

Linux学习——进程状态

目录 一,进程状态 1,进程状态的分类 2.状态的本质 3.进程状态详解 1.运行状态 2.阻塞状态 3.挂起状态 4.Linux内核中的状态分类 一,进程状态 1,进程状态的分类 如下图: 在计算机中我们的状态的分类便如下图所示…

Git 详解

目录 一. 前言 1.1 特点 1.2. 操作流程 二. Git bash 三. 操作指令 3.1. 基本命令 3.1.1. git add 3.1.2. git checkout 3.1.3. git commit 3.1.4. git status 3.1.5. git log 3.1.6. git reset 3.1.7. git忽略文件 3.2. 分支命令 3.2.1. 创建分支 3.2.2. 查看…

JDBC-day05(DAO及相关实现类)

七:DAO及相关实现类 1. DAO介绍 DAO:Data Access Object访问数据信息的类和接口,包括了对数据的CRUD(Create、Retrival、Update、Delete),而不包含任何业务相关的信息。有时也称作:BaseDAO作用…

websocket+node+vite(vue)实现一个简单的聊天

1.前端逻辑 本项目基于之前搭建的vite环境&#xff1a;https://blog.csdn.net/beekim/article/details/128083106?spm1001.2014.3001.5501 新增一个登录页和聊天室页面 <template><div>登录页</div><div>用户名:<input type"text" pl…

React create-react-app 里配置代理(解决跨域)

配置代理&#xff1a; creact-react-app v5 当然不是v5 下面的方法也适用。 方式一&#xff1a;package.json里配置 其实 cra里给了个简单的配置代理 就是在package.json里加上proxy就行了。 修改时需要 npm start重新运行一下&#xff0c;要不然可能不生效。 proxy只能以 h…

Leetcode学习记录(1)

1.unordered_map C关联容器&#xff0c;内部hash表结构&#xff08;检索&#xff09; 通过key来检索value&#xff0c;不是通过绝对地址&#xff0c;内部无序&#xff0c;Map对应唯一值&#xff0c;动态管理 unordered_map<const Key, T> map; 如上述代码表述&#x…

主机jvisualvm连接到tomcat服务器查看jvm状态

​使用JMX方式连接到tomcat&#xff0c;连接后能够查看前边的部分内容&#xff0c;但是不能查看Visual GC&#xff0c;显示不受此JVM支持&#xff0c; 对了&#xff0c;要显示Visual GC&#xff0c;首先要安装visualvm工具&#xff0c;具体安装方式就是根据自己的jdk版本下载…

第二证券:10家央企集体行动!9月至今逾百家公司回购增持

10月16日&#xff0c;10家央企连续公告&#xff0c;掀起了新一轮回购增持潮。其间&#xff0c;5家上市公司发布新增增持方案&#xff0c;约5亿&#xff5e;16.3亿元&#xff1b;2家上市公司发布增持打开&#xff0c;估计约23.43亿元&#xff1b;1家上市公司新增回购方案&#x…

服务器数据恢复-RAID5常见故障的数据恢复方案

raid5阵列常见故障&#xff1a; 1、服务器硬件故障或者RAID阵列卡故障&#xff1b; 2、服务器意外断电导致的磁盘阵列故障&#xff1b; 3、服务器RAID阵列阵列磁盘出现物理故障&#xff0c;如&#xff1a;电路板坏、磁头损坏、盘面划伤、坏扇区、固件坏等&#xff1b; 4、误操作…

25项,2023年国家优青(港澳)入选者完整名单公布!

国家优秀青年科学基金项目&#xff08;港澳&#xff09;旨在支持香港特别行政区、澳门特别行政区&#xff08;以下简称港澳特区&#xff09;科技创新发展&#xff0c;鼓励爱国爱港爱澳高素质科技人才参与中央财政科技计划&#xff0c;为建设科技强国贡献力量&#xff0c;2023 年…

MyBatisPlus(十九)自动填充

说明 自动填充指的是&#xff0c;当数据被 插入 或者 更新 的时候&#xff0c;会为指定字段进行一些默认的数据填充。 比如&#xff0c;插入时&#xff0c;会自动填充数据的创建时间和更新时间&#xff1b;更新时&#xff0c;会自动填充数据的更新时间。 实现方式 配置处理器…

Centos中如何删除带有特殊符号的乱码文件_rz命令产生的乱码文件如何删除_使用文件号删除乱码文件---Linux运维工作笔记058

在使用rz命令进行文件上传的时候,偶尔会产生一堆的乱码文件,比如: 可以看到有一堆的乱码文件. 普通的乱码文件,直接rm -rf 文件名就可以删除了,但是有一些不行,包含特殊符号的,比如: 这个文件报错了,可以看到用rm -rf 根本删除不掉. 这个文件后面包含了一个.对吧 那该怎么解决…

python基于django的留学生服务管理平台

留学服务管理平台的用户是系统最根本使用者&#xff0c;按需要分析系统包括三类用户&#xff1a;学生、教师、管理员。这三类用户对系统的需求简要如下。技术栈 后端&#xff1a;pythondjango 前端&#xff1a;vueCSSJavaScriptjQueryelementui 开发语言&#xff1a;Python 框架…

69. x 的平方根

69. x 的平方根 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a;1. log换底2. 二分查找3. 牛顿迭代法 原题链接&#xff1a; 69. x 的平方根 https://leetcode.cn/problems/sqrtx/description/ 完成情况&#xff1a; 解题思路&#xff…

2023年中国乳胶制品产量、需求量及市场规模分析[图]

乳胶泛指聚合物微粒分散于水中形成的胶体乳液&#xff0c;又称胶乳。习惯上将橡胶微粒的水分散体称为胶乳&#xff0c;而将树脂微粒的水分散体称为乳液。以乳胶为原料制成的制品称乳胶制品&#xff0c;常见的如海绵、手套、玩具、胶管等。 我国乳胶制品细分主要分为避孕套、乳胶…

idea不识别yaml文件导致,配置文件点击跳转不了类

文章目录 场景确认的idea安装了ymal插件,确认你的配置文件是yml格式的还是ymal格式的然后在项目配置中看看是否有对应的后缀.最后看看在项目模块里面有没有spring模块跟对应的配置文件,如果没有就要添加这样点击配置文件就能跳转到对应的实体类了 场景 在使用idea时&#xff0…

网络社区挖掘-图论部分的基本知识笔记

1 网络社区挖掘定义 网络社区挖掘是指利用数据挖掘技术和机器学习算法&#xff0c;分析社交网络、在线社区或互联网上的各种交互数据&#xff0c;以揭示其中隐藏的模式、关系和信息。这些社区可以是社交媒体平台、在线论坛、博客、微博等&#xff0c;人们在这些平台上进行交流…

智慧公厕:打破传统,解决城市痛点@中期科技

近年来&#xff0c;随着城市化进程的加速推进&#xff0c;智慧公厕成为人民生活质量提升的重要组成部分。作为一个富有创新和科技感的解决方案&#xff0c;智慧公厕不仅满足了人们对公共环境的要求&#xff0c;还提供了一系列便利的服务&#xff0c;让人们的生活更加舒适、便捷…