.NET 6新特性试用 | 热重载

前言

在以前的开发模式下,我们修改代码后必须重新编译、重新运行才能看到效果。

而热重载提供了这样一种特性,它允许你在项目正在运行时修改代码,并将代码更改立即应用于正在运行的应用程序上。

热重载的目的是尽可能节省编辑之间的应用重启次数,从而使你通过减少等待应用重新生成、重启、重新导航到你在应用中的上一个位置等操作的时间来提高工作效率。

在.NET 6发布之前还有个小插曲,热重载差点从dotnet CLI中被移除。具体可以看这篇文章:https://devblogs.microsoft.com/dotnet/update-on-net-hot-reload-progress-and-visual-studio-2022-highlights/ 

下面,让我们尝试使用热重载来编写和调试正在运行的代码。

Demo

假设有下列代码,每秒向控制台输出一行文本:

int i = 0;
while (true)
{Console.WriteLine("My IO " + i++);await Task.Delay(1000);
}

1.使用VS2022

使用F5启动附加了调试器的应用程序,然后修改代码,最后单击“火焰”图标(“热重载”按钮)或按 ALT+F10 应用代码更改,又可以看到效果: 

86b250a0db555a78e358e1f406293211.gif

2.使用dotnet CLI

在控制台窗口使用dotnet watch启动应用程序,然后修改代码,最后只需保存文件,等待一会就可以看到效果: 

ae7e0ef07dc7e95c4847815ce084013b.gif

可以看到,热重载并不是完全实时的。

结论

将Visual Studio 2022与.NET 6应用一起使用时,可以支持大多数应用类型的热重载。

下表显示了哪些应用程序类型在附加调试器(F5)和不附加调试器(Ctrl+F5)的情况下支持热重载,以及是否需要.NET 6才能获得最低支持(即 F5, Ctrl+F5支持始终需要.NET 6),还显示了支持该功能的Visual Studio的最低版本:

Application type.NET 6 required (F5)F5Ctrl+F5
ASP.NET code behindNo16.1117.0
ASP.NET Razor (Blazor Server and ASP.NET Core)Yes17.017.0
ASP.NET Razor (Blazor WASM)YesNo17.0
WPFNo16.1117.0
WinUI3No16.11No
WinFormsNo16.1117.0
ConsoleNo16.1117.0
XAML .NET MAUI WinUIYes17.1 Preview 1No
XAML .NET MAUI AndroidYes17.1 Preview 1No
XAML .NET MAUI iOSYes17.1 Preview 1No
XAML + Blazor .NET MAUI WinUIYes17.1 Preview 1No
XAML + Blazor .NET MAUI AndroidYes17.1 Preview 1No
XAML + Blazor .NET MAUI iOSYes17.1 Preview 1No

如果你觉得这篇文章对你有所启发,请关注我的个人公众号”My IO“

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

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

相关文章

加速你的Hibernate引擎(上)

为什么80%的码农都做不了架构师?>>> 1.引言 Hibernate是最流行的对象关系映射(ORM)引擎之一,它提供了数据持久化和查询服务。 在你的项目中引入Hibernate并让它跑起来是很容易的。但是,要让它跑得好却是需…

WSUS服务器的建立以及客户端发布

http://yuelei.blog.51cto.com/202879/81676转载于:https://blog.51cto.com/439810/909642

Spring MVC 中 HandlerInterceptorAdapter过滤器的使用

一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的,这种方式可以实现Bean预处理、后处理。 Spring MVC的拦截器不仅可实现Filter的所有功能,还可以更精确的控制拦截精度。 Spring为我们提供了org.springframework.web.s…

7部必看的纪录片,每一部都堪称经典,让人叹为观止!

全世界只有3.14 % 的人关注了爆炸吧知识纪录片的一大重要意义,就在于它能将我们的视野和脚步,引向我们无法企及的地方和领域,又能让那些我们曾经到过的地方、经历过的人事,变得更有深意。今天,就给大家分享7部顶级纪录…

通过SQL Server操作MySQL的步骤和方法

在多种数据库环境下,经常会遇见在不同数据库之间转换数据和互相进行操作的情况。以下简要介绍下用SQL Server操作MySQL的步骤和方法。 1 操作前的准备 1.1 安装MySQL驱动 想要在SQL Server中操作MySQL,首先要在SQL Server所在的服务器上安装MySQL的驱动。…

ubuntu 新增mysql用户_Ubuntu中给mysql添加新用户并分配权限

一.Ubuntu下启动mysql方法:/etc/init.d/sudo mysqld二.用户添加bingt;mysql -u rootmysqlgt; grant 权限1,权限2,...权限n on一.Ubuntu下启动mysql方法:/etc/init.d/sudo mysqld二.用户添加bin>mysql -u rootmysql> grant 权限1,权限2,...权限n on…

ABP Framework 5.0 RC.1 新特性和变更说明

.Net 6.0 发布之后,ABP Framework 也在第一时间进行了升级,并在一个多星期后(2021-11-16)发布了 5.0 RC.1 ,新功能和重要变更基本已经确定。5.0版本新特性5.0版本新特性列表:•静态 C# 和 JavaScript 客户端…

技术成长的困扰

学习知识的来源都是微信公众号、微博、博客,太碎片化,造成的结果是没有自己的知识体系,不能从整个知识结构层面去看待问题。转载于:https://www.cnblogs.com/samniu/p/5147191.html

mysql分页原理和sqlserver里面序列的用法

mysql使用经验 1.比如分页 select * from table limit 6 和select * from table limit 0,6 等价select * from table limit 5,10; 一般前面的5放的是 漂移 后面的10放的是 一页多少行 拿到数据库 table里面的数据是 第6条到15条 42.121.56.21sqlserver里面序列的用…

土木工程到底有多惨?哭了哭了......

1 那我要去女寝当宿管!(素材来源网络,侵删)▼2 别说了快哭了▼3 今夜我们都是尾款人▼4 童叟无欺,与图片完全一致▼5 好样的,兄弟!▼6 土木工程有多惨?(素材来源网络…

基于ip tunnel连接不同三个不同网络的×××

就以公司的环境来测试: 局域网网段为192.168.0.0/24 公司linux网关服务址器地绑定两块网卡 内网为192.168.0.3(作为局域网的网关)公网IP地址为:111.111.111.111 机房内网网段为10.10.0.0/16 一台服务器绑有两块网卡 内网地址…

Easy UI中dategrid的getSelections方法只能获取一个id的解决办法

解决方案:检查idField属性值是否与json数据中的id相同(区分大小写) 实在不行就 去掉 idField属性 也可以解决问题 具体效果请看图: 转载于:https://www.cnblogs.com/hanfeng1949/archive/2013/05/28/3104288.html

java合并list_怎么把两个list合并

第二步骤:list添加set集合1、在实际使用中addAll方法也可以将set集合中的内容添加到list中2、实际代码如下所示:import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Set;public class ListTest {public stati…

mybatis和hibernate的对比总结

mybatis和hibernate 第一步, 首先让我们对mybatis和hibernate对比了解下 1、 Hibernate :Hibernate 是当前非常流行的ORM框架,对数据库结构提供了较为完整的封装,都是为了简化Dao层的操作。Mybatis:Mybatis同…

.NET 6新特性试用 | Controller支持IAsyncDisposable

前言在.NET中,拥有非托管资源的类通常会实现IDisposable接口,以提供一种同步释放非托管资源的机制。但是,在某些情况下,需要提供一种异步机制来释放非托管资源,这时候可以实现IAsyncDisposable接口。在实现此接口后&am…

ngnix之rewrite

2019独角兽企业重金招聘Python工程师标准>>> REWITE重写[rootlocalhost nginx]# cd conf[rootlocalhost conf]# lsfastcgi.conf koi-win scgi_paramsfastcgi.conf.default mime.types scgi_params.defaultfastcgi_params …

【转】服务器维护工程师悲惨的一个星期

2012.5.11 17点40分,接到**科技部的电话,告诉我IBMX346的服务器同时坏了2块SCSI146G硬盘,现在系统进不去了.问我周六周日能否去修复,和我的领导沟通后明确要周一才能拿到配件. 周一11点才拿到2块SCSI 146G硬盘,匆忙赶去该行,还好不要数据恢复,估计不是很重要的业务,吃完中饭之后…

清华博士生放弃科研,跑去当中学教师,值得吗?

全世界只有3.14 % 的人关注了爆炸吧知识本文来源:科学网博客 作者:程代展原清华大学程代展教授数年前发表博文《昨夜无眠,为了一个学生》,叙述一个亲传徒弟转行的事情。该文曾激起对科研有兴趣的网友的关注,也引发了人…

6、基本查询操作

在数据库的操作中,开发人员或者用户为了取得数据记录,需要检索数据表中的信息。在SQL语句中,检索数据记录是通过SELECT语句来完成的。SELECT语句可以检索数据表或者视图中的数据,并将查询出来的数据以结果集的形式显示出来。 1.查…

java web容器_Java Web容器安全

这里的Java Web容器特指Tomcat,Tomcat依然是最流行的Java Web容器,你大爷还是你大爷。本文并不涉及业务层面上的安全控制,只针对Tomcat自身所支持的相关安全控制功能与特性。首先看一下Web容器的四个基本安全特性验证 Authentication资源访问…