.net v6.0.0-preview.3的HotReload我是极喜欢的,因为之前有这样的需求——状态不丢,上下文不丢。

为了验证,安装完.net 6 preview 3后,新建一个webapi项目,写了如下简单代码:

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;namespace HotRealoadDemo.Controllers
{[ApiController][Route("[controller]")]public class HomeController : ControllerBase{private readonly ILogger<HomeController> _logger;private static string _dateTimeStr;public HomeController(ILogger<HomeController> logger){if (HomeController._dateTimeStr== null){_dateTimeStr=DateTime.Now.ToString();}_logger = logger;}[HttpGet("/status")]public string GetStastus(){_logger.LogInformation("获取时间列表");return "时间是:"+_dateTimeStr;}[HttpGet("/sleep")]public string Sleep(int i){_logger.LogInformation("延时");if (i == 1){System.Threading.Thread.Sleep(10000);}  return "延时结果";}}
}

在项目目录,用dotnet watch运行项目。

状态不丢:

这里的状态我是全局的,放了一个静态的字段_dateTimeStr,当第一次调用/state时,该字段初赋值,之后每次调用都不变,用swagger可以验证。这时,我们修改HomeController的29行代码,把 “时间是”变成“输出时间是”,保存,再次调用swagger的/state,会发现,原来的时间没有变,但输出文本已变成“输出时间是”了,这说明代码起作用了,但_dateTimeStr这个内部状态值没有丢,进程好像没有重启一样。

上下文不丢:

这里用/sleep进行试验,当i=1里,要sleep10s,我会先请求一个/sleep?i=1,这里浏览器在等行,这里把HoemController的40行代码改成“延时结果GSW”,这时可以在swagger上调用/sleep,i传非1值 ,结果会是改变后的“延时结果GSW”,如果上一次的浏览器等待后返回了,你会看到是“延时结果”,并没有GSW,这是因为在这个请求调起时,还没有加上GSW,这个是可以理解的。其实这个功能我在k8s上试过,虽然pod可以优雅停止,但它是固定时间后停止,即使请求没有完成,也会停止的,相对来说没有HotReload更准确。

验证完成,还是相对满意的,因为HotReload是最近才加入的功能,还很不完善,比如这个只能在项目源码文件夹里用dotnet watch启动才行,publish后是不可以的,相信不远的将来,.net团队会更加完善这个功能,给出一个让大家满意的结果。

还有另一方面,不要希望这个功能能处理所有功能变化的HotReload,比如你把状态变量名改了,原来的状态肯定是不会存在的,所以良好的设计,加上HotRealod的功能,才能让我们的对客户提供的api服务无微不至,无时无刻。

.NET 6 HotReload的试用相关推荐

  1. qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...

    作者:飞扬的青春 在拿到开发板之后,已经体验了Android操作系统,接下来就是体验Linux下的开发,本次以QT的一个小案例来测试下. 首先是自己先搭建了一个Ubuntu18.04的虚拟机,使用真机 ...

  2. casperjs 安装试用

    纠结了好久,一直报错, 具体错误信息现在已经忘了,后来看了官网的prerequisite,才知道要安装特定版本或greater 的 phantomjs 和 Python.我这边主要是没装python. ...

  3. 2019智能手表推荐_智能手表一定越贵越好?试用过后这五款才真正值得推荐

    随着技术的进步,年轻人手上的普通腕表进化成了智能手表,虽说几年前智能手表产品还存在功能单一和续航太短等问题,然而,经过几年的发展迭代,智能手表技术不断革新,带给人们更好的使用体验,也有越来越多的人愿意 ...

  4. 卡巴循环30天不限次数循环试用工具

    本文需评论之后方可查看! @echo off @title 卡巴循环30天不限次数循环试用工具 @echo off echo 卡巴循环30天不限次数循环试用工具 echo. echo ======== ...

  5. 从试用到使用:计算机视觉产业新一轮发展的起步年

    参加 2018 AI开发者大会,请点击官网报名 CSDN 出品的<2018-2019 中国人工智能产业路线图>V2.0 版即将重磅面世! V1.0 版发布以来,我们有幸得到了诸多读者朋友及 ...

  6. 代码审查规范(试用版)

    目录 1.背景 2.目标 3.流程 4.指定代码审查规范 4.1.命名风格 4.2.常量定义 4.3.代码风格 4.4.注释风格 4.5.控制语句 5.执行代码审查规范 6.开展PR Bash活动 1 ...

  7. Proovread安装与试用

    proovread安装与试用 2018.12.04 19:52:21字数 204阅读 118 [TOC] 安装环境 Ubuntu18.10 Perl 5.10.1 or later Log::Log4 ...

  8. html阅读开放试用阶段,泰克为不同行业提供100种应用功能免费试用

    泰克在3月中旬开始推出的[泰克芯高度,视界大不同]系列线上活动,其中特别针对工程师推出几十种软件包的30天免费试用,每个软件可以单独开通.针对电源设计.汽车电子.无线信号.高速信号等多个行业,泰克开放 ...

  9. 福利 | 放送AI华人库试用名额!专项代码找到领域专家

    文末有福利哦~ 如今,人工智能领域发展如火如荼,国家也高度重视人工智能的发展,自然基金委成立了人工智能的专项代码F06,我们做了一个很有意思的尝试,首先通过在相关领域发表的论文找到2000位左右华人专 ...

最新文章

  1. Linux 守护进程的原理与实现
  2. 系统故事 --- 让系统讲故事
  3. vnc连接linux时出现黑屏
  4. 如何使用XML 配置的方式配置Spring?
  5. 列举ospf的5种报文类型_OSPF的5种报文类型
  6. MVC5+EF6 入门完整教程11--细说MVC中仓储模式的应用
  7. 阿里的 RocketMQ 如何让双十一峰值之下0故障
  8. 2019春第一课程设计报告
  9. Design Pattern: Adapter 模式 - Object Adapter
  10. python和CSV
  11. 即插即用,运维工程师必会正则表达式大全
  12. 一张网络路由器与能源路由器对照表(2015年)
  13. autosar 与osek 的nm
  14. MUI框架-01-介绍-准备-创建项目
  15. getinfo怎么用php,PHP的函数curl-curl_getinfo
  16. Flutter TextFiled去掉下划线
  17. scarpy-爬取链家所有成交数据
  18. 验证网站代码的免费在线工具
  19. Git提交代码到新仓库(--mirror)
  20. k203m机型java游戏_唯美中国风 品步步高K203M的江南之美

热门文章

  1. java gui框架_推荐!程序员整理的Java资源大全
  2. Windows下的HEAP溢出及其利用
  3. shell 多行注释
  4. FirstBird--项目流程
  5. yii2笔记: 单元测试
  6. 20142335郝昊第三周学习总结
  7. 三种查看SqlServer中数据物理pge页的方法
  8. (转)C#网络编程(基本概念和操作) - Part.1
  9. datagrid 什么时候结束编辑_2020年中考结束后,什么时候出分?什么时候报志愿?...
  10. 使用MyQ打开车库门时如何接收警报