整理 | 孙胜

出品 | CSDN(ID:CSDNnews)

近日,.NET开源社区“再起波澜”。

只因微软在即将发布的 .NET 6 中悄悄删除了 Hot Reload(热重载) 的核心部分,此举彻底激怒了 .NET 开源社区开发者,他们强烈反对微软这种行为,认为微软这样做极不利于 .NET 开源社区健康发展。

CSDN下载于东方IC

删除“热重载”功能的意味着什么

据了解,所谓 Hot Reload(热重载)功能,是一个可以允许开发者在应用程序运行时更改源代码,并立即看到效果的关键功能。换句话说,就是在开发人员写代码过程中,获得修改代码的即时反馈,从而帮助软件开发人员提高开发效率。

来源于微软官网

此前,微软曾高调宣布将在 .NET 6 中加入“热重载”功能,但是微软又悄悄地从名为 dotnet watch 的工具中删除 2500 行“热重载”功能的源代码。

10 月 20 日,微软项目经理 Dmitry Lyalin 发布一篇博文表示:“我们决定从即将发布的 .NET 6 GA 开始,现在只通过 Visual Studio 2022 启用热重新加载功能。”

来源于微软官网

就是这个消息,瞬间引爆了整个 .NET 社区。对于不熟悉开源社区的朋友来说,微软仅仅删除一个“热重载”功能,.NET 社区开发者为什么这么激动呢?

实际上,微软删除 .NET 6.0 的热重载功能是将其限制在自家产品 Visual Studio 开发平台上,拒绝开放给其它平台使用,微软此举已经违背了开源社区的“发展初心”。

准确来说,微软已经将开源 .NET SDK 故意削弱了,使得微软自家免费的商业产品 Visual Studio 比竞争对手更具吸引力,包括微软赞助的 Visual Studio Code。最重要的是,此次更改微软是在没有与 .NET 社区协商的情况下完成的。

为此,人们联想到之前关于 .NET 基金会的“数次危机”。此前一位卸任的董事会成员就对 .NET 基金会的角色提出了质疑,询问它是否仅代表微软的意愿行事、还是致力于帮助培养和促进一个健康的社区?

据了解,微软此次不仅将 .NET 6.0 的热重载功能删除,目前 macOS 和 Linux 开发人员那里也删除了该选项,内部人士称:“现在这个功能真的成为了 Windows 和 Visual Studio 开发平台独有的工具了”。

微软道歉:恢复 .NET SDK 热重载功能

由于 .NET 社区强烈谴责微软从 .NET SDK 中删除了热重载(Hot Reload)功能,微软不得不出来道歉,并宣布恢复 .NET 中的热重载功能。

恢复热重载功能GitHub截图

10月23日,微软官方发布博文道歉:“首先,也是最重要的,我们要道歉。我们在执行我们的决定时犯了一个错误,花了比预期更长的时间来回复社区。我们已经批准了重新启用这一代码路径的拉取请求,它将在 .NET 6 SDK 的 GA 构建中出现。”

来源于微软官网

微软方面解释称,因为于绝大多数 .NET 开发人员都在使用 Visual Studio,他们为了确保 VS 为 .NET 6 提供最佳体验,所以他们选择首先将 Hot Reload 引入 VS 2022。

同时微软强调是无意中删除了这段源代码,而不是不调用该代码路径。在文章的最后,微软再次进行了道歉,并表示:他们的愿望是为 .NET 创造一个开放和充满活力的生态系统。和许多公司一样,他们也正在学习如何平衡 OSS 社区的需求和作为 .NET 的企业赞助商之间的关系。

来源于微软官网

网友对此看法不一

即便微软决定恢复 .NET SDK 中热重载(Hot Reload)功能,还是引起了众多网友的议论。

@Georg Dangl 网友认为:这是开源理念的一个很好的证明——问题得到了承认,反馈得到了迅速解决。

@Cory Crooks 网友并不认可微软官方说法。他们认为“微软无意中删除了源代码,而不是不调用该代码路径”。这是否意味着代码将在那里,现在仍然无法从命令行使用?

@ Allan Lindqvist 网友认为这篇博文听起来是个好消息,但并没有说明如何恢复热重载(Hot Reload)功能,也没有解释微软是否试图以牺牲其他平台为代价,促进 Visual Studio 成为 .net 生态系统中的“一等公民”等问题。

对此,你怎么看?欢迎留言评论。

参考链接:

  • https://devblogs.microsoft.com/dotnet/update-on-net-hot-reload-progress-and-visual-studio-2022-highlights/

  • https://devblogs.microsoft.com/dotnet/net-hot-reload-support-via-cli/

  • https://www.theregister.com/2021/10/22/microsoft_net_hot_reload_visual_studio/

技术交流群

最近有很多人问,有没有读者交流群,想知道怎么加入。

最近我创建了一些群,大家可以加入。交流群都是免费的,只需要大家加入之后不要随便发广告,多多交流技术就好了。

目前创建了多个交流群,全国交流群、北上广杭深等各地区交流群、面试交流群、资源共享群等。

有兴趣入群的同学,可长按扫描下方二维码,一定要备注:全国 Or 城市 Or 面试 Or 资源,根据格式备注,可更快被通过且邀请进群。

▲长按扫描

往期推荐

火遍全国的网络热梗“yyds”,创造者被判刑3年

北京朝阳一互联网公司被端,警方上门,23人被带走…这种开发千万别干!

一个理科直男是如何看《鱿鱼游戏》的

如果你喜欢本文,

请长按二维码,关注 Hollis.

转发至朋友圈,是对我最大的支持。

点个 在看 

喜欢是一种感觉

在看是一种支持

↘↘↘

激怒开源社区,微软悄悄删除2500行功能代码后致歉:已恢复!相关推荐

  1. 微软强制移除旧版Edge后,已卸载新版Edge,要如何恢复

    微软强制移除旧版Edge后,已卸载新版Edge,要如何恢复 背景: 解决方式: 背景: 微软在4月的一次更新中强制的移除了旧版edge.对于一般已经更新新版的用户而言这没有什么影响.然而由于念旧我当初 ...

  2. [7]深入浅出工作开源框架Camunda: camunda-webapp 用户登录功能代码分析

    在上个章节<[6]深入浅出工作开源框架Camunda: 如何远程Debug camunda-webapp的源代码>笔者解释了如何进行Camunda的远程Debug,这个章节笔者给大家分享如 ...

  3. 【开源教程11】疯壳·开源蓝牙心率防水运动手环-整机功能代码讲解

    开源蓝牙心率防水运动手环 --疯壳·智能穿戴开发系列 整机功能代码讲解 整机代码 1 软件设计    本节,我们将融合前面的蓝牙收发.三轴记步.电量检测.外部 Flash 读写. 心率检测和 Led ...

  4. 【开发教程11】疯壳·开源蓝牙心率防水运动手环-整机功能代码讲解

    开源蓝牙心率防水运动手环 --疯壳·智能穿戴开发系列 整机功能代码讲解 整机代码 1 软件设计    本节,我们将融合前面的蓝牙收发.三轴记步.电量检测.外部 Flash 读写. 心率检测和 Led ...

  5. 红帽技术开放日:参与开源社区不只有贡献代码这一种方式

    红帽(Red Hat)是全球最大的开源软件公司,今年是红帽建立25周年,适逢LC3大会在北京举办,6月28日和29日红帽举办了开源社区开放日和媒体交流会,和大家分享红帽的最新消息,并探讨了如何建设开源 ...

  6. 开源社区给黑客带来了什么?

    点击上方"开源社"关注我们 | 作者:tisonkun | 转载自:夜天之书 | 编辑:黄欣宜 | 设计:刘颖洁 | 责编:王玥敏 近年来,以阿里巴巴.小米和华为为首的一批公司在开 ...

  7. 对话MVP | 柳贵:在FISCO BCOS,我体会到了开源社区的精神

    " 别人答疑,我也应为别人解惑,这是我保持热情最重要的原因之一.成功帮别人解决了问题,我也尝到了 "传道授业解惑"的那份快乐. -- 柳贵 开源社区成立以来,吸引汇聚了许 ...

  8. 开源社区的长期主义与新变化 — CloudWeGo 开源社区实践

    本文整理自 CloudWeGo 开源一周年技术沙龙活动中字节跳动 CloudWeGo 开源(社区)运营负责人邓逸云的演讲分享,技术沙龙主题为<字节高性能开源微服务框架:CloudWeGo> ...

  9. 删除DriverStore\FileRepository文件夹后,设备驱动无法安装,提示“没有为设备信息集或元素选择驱动程序(代码 28)”的解决办法...

    前言: 我前几天手贱,整个FileRepository删除掉了,之后重启就出现了让人蛋疼的这个问题,因为出于各种原因不想重装系统,百度轮番换搜索词无果,虽然驱动装上了但新设备依然无法自动安装驱动等&q ...

最新文章

  1. linux学习笔记十四:安装SAMBA(Server Message Block)
  2. 用电脑发短信_重磅!一个软件实现电脑上接打手机电话、收发短信、传文件、屏幕镜像!...
  3. mysql 插入数据后返回该条数据id
  4. SQL语言之事务处理语言(Oracle)
  5. __call__ 可调用对象
  6. 在一台服务器上搭建多个项目的SVN
  7. ThinikPHP 前端URL模式
  8. P3599-Koishi Loves Construction【构造,数论】
  9. Weblogic 数据源及连接池配置问题Warning! Connectivity to backend database not verified
  10. ListView列表刷新方法的区别
  11. 企业软件开发商 Atlassian 紧急修复不慎泄露的0day,IBM Aspera 软件或受影响
  12. python自动化框架学习-pyautogui
  13. oracle性能优化 pdf,Oracle性能优化技术内幕 pdg-pdf
  14. [乡土民间故事_徐苟三传奇]第四回_张员外受骗摔新锅
  15. 封装HDLC协议实现两个路由器互相通信
  16. 大疆文档(4)-Android教程-应用程序激活和飞机绑定
  17. 在ubuntu上搭建IC数模混合环境
  18. 浏览器禁用了cookie怎么办
  19. 图片转ICO工具新版本(支持更多图片格式,支持更多分辨率,原生更快)
  20. 常见短信平台发送的号码有哪些?95开头、106开头短信发送号码区别说明

热门文章

  1. ie8 ajax访问不了https,ie8不支持https协议的api接口么
  2. 如何移植mysql数据库_如何把本地MySql数据库移植到远程服务器上
  3. pc显示器分辨率 前端_2020电竞显示器推荐
  4. Php循环函数嵌套javascript,JS循环嵌套问题?
  5. php支持 的编码,php编码转换函数(自动转换字符集支持数组转换)
  6. php+当前+日期+函数是,php时间日期的处理函数
  7. 1323. 6 和 9 组成的最大数字
  8. 动态规划问题中最长公共子序列---C语言实现
  9. P2转P3'dict' object has no attribute 'has_key'
  10. 使用Docker快速搭建生产环境