.NET 5 的烦恼

由于微软工程师的辛勤脑洞和劳作,.NET 生态如何演变完全看他们的决策,其中包含社区吸纳内容、团队讨论结果等等,不乏一些工程师、架构师偏好,很难摸得准。
 
就比如这一次未来规划,他们希望将 .NET Core 和 .NET Framework,以及 Xamarin 和 Mono,合并到一个框架里来维护,项目结构标准化,不再继续更新到 .NET Framework 5 和 .NET Core 4,后续再有新的功能性更新仅维护一套代码库,同时对 .NET Framework 4.8 和 .NET Core 3.1 LTS 再进行一段时间的非功能性维护,不再添加新功能。并且为避免和 .NET Framework 4.x 的大版本有所冲突和误解,直接从 .NET Core 3.1 跳到 .NET 5,去掉 Core 的字样。
 
目前已更新到 Preview 7,距离正式版发布还有两三个月的时间,届时一波更新在所难免。
参考  https://devblogs.microsoft.com/dotnet/introducing-net-5/ 以及 https://news.ycombinator.com/item?id=19840763,发布在即的同时有一些疑问也在社区内被广泛提及,需要微软的工程师们提上日程和广大 .NET 开发用户探讨,虽然他们并不一定在乎部分 .NET 用户的质疑声(冷漠脸):
  1. 合并了这么多内容,.NET 5 会不会太重,依赖的二进制文件增多,增加发布包的大小,或者 docker 基础镜像的大小,存在许多用不到的架构和功能,就像 Abp vNext 一样,.NET 5 确实也标榜自己为 .NET Core vNext,一个多元一体化平台。其中主要影响的是 SDK,对于发布文件来说影响不大,因为运行时对应着不同的 Runtime,尤其是 ASP NET Core,不用过多的担心,不会有多余的引用和内容,但桌面应用以及其他应用就不一定了。其中有些东西不需要内置到 SDK 里,通过 NuGet 包按需引用即可。
  2. 上网查资料搜索时,搜 .NET、.NET 5 会不会直接影响到搜索结果,因为原先的 .NET Framework 默认为 .NET,而跨平台的 .NET 为 .NET Core,这样搜索 .NET Core 相关的内容时,很容易在搜 .NET 时漏掉 3.1 前的帖子,搜 .NET Core 时漏掉 5 以后的帖子。 同样的,对于 ASP NET Core 的影响略小,因为它的名字没有变,仍然搜索带 Core 字样的 ASP.NET Core。奇怪的是这个 Core 为什么还保留着呢,ASP.NET 原先本身也就到 4.8,没有更新的版本号,革命不彻底啊,感觉既然革 Core 的命,就干脆叫 ASP.NET 5,让社区去适应多好,本来一部分老微软人也是向来多从自身企业的利益出发,不太考虑社区的意见,显得比较傲慢。
  3. 对于 Win 7 系统会不会支持 .NET 5 微软团队也有点迷,从 Win 7 从 2020年1月份开始停止 Extended Support 的情况来看,早晚都会不再支持更新版本的 .NET。但就目前 .NET 团队发布的说明和讨论来看, .NET Core 3.1 和 .NET 5 还是会支持 Win 7 SP1 的。官方网站 https://docs.microsoft.com/en-us/dotnet/core/install/windows?tabs=netcore31 并未挑明了支持,但 github 上面显示最低能够支持到 Win 7 SP1,3.1 见  https://github.com/dotnet/core/blob/master/release-notes/3.1/3.1-supported-os.md#windows,5.0 见 https://github.com/dotnet/core/blob/master/release-notes/5.0/5.0-supported-os.md。支持的是 Win 7 ESU,即自 2020年1月之后最多再支持三年,相关讨论见 https://github.com/dotnet/core/issues/4894#issuecomment-654335388
posted @ 2020-08-25 16:29  TXRock  阅读(2811)  评论(0编辑  收藏  举报