微软停止更新 .NET Standard,.NET 5 取而代之

来源: OSCHINA
编辑: 局长
2020-09-18

微软 .NET 官方博客近日发布了一篇谈论 .NET Standard 未来的文章。文章作者是 .NET 项目经理 Immo,他在文章中指出未来 .NET Standard 将会被 .NET 5 取代,还对 .NET 5 如何改进代码共享以及取代 .NET Standard 这个说法进行了解释,此外还介绍了仍然需要 .NET Standard 的情况。

Immo 表示不会再为 .NET Standard 发布新版本,但 .NET 5 及其所有未来的版本将继续支持 .NET Standard 2.1 和更早版本。他建议开发者可以考虑将net5.0(以及未来的版本)作为共享代码的基础,甚至可以将 .NET 5 视为 .NET Standard vNext。

因为 .NET 5 将会是具有统一功能和 API 的单一产品,可用于开发 Windows 桌面应用程序、跨平台移动应用程序、控制台应用程序,以及云端服务和网站。而且为了更好地体现 .NET 5 的定位,微软还更新了目标框架名称(TFM, Target Framework Name)。

.NET Standard 的出现是为了提供 .NET 统一跨平台的基础函数库,方便开发者编写在任何平台执行的函数库,但 Immo 指出了 .NET Standard 存在 3 个问题,包括版本更新缓慢、.NET Standard 版本与 .NET 实现的映射较为复杂以及 .NET Standard 包含了特定于平台的功能,因此无法静态验证代码是否真正可移植。

.NET 5 针对这些问题均提供了解决方案,而且 .NET 5 和未来的版本将会支持 .NET Standard 2.1 以及更早版本,因此开发者可以不需要更新现有程序,不过如果开发者希望使用额外的 Runtime 功能、语言功能以及 API,可以选择将 .NET Standard 升级使用 .NET 5。

对于新项目应该从 .NET Standard 2.0 开始还是直接使用 .NET 5 的问题,Immo 认为主要取决于应用程序组件和可重用的库。当开发者使用函数库将应用程序分解成多个组件,为简单起见,组成应用程序的所有项目最好都位于同一版本的 .NET 上,此时可以考虑 .NET 5。如果要构建计划在 NuGet 上使用的可重用库,则需要考虑可用的功能集,.NET Standard 2.0 是 .NET Framework 支持 .NET Standard 的最高版本,其提供了庞大的功能集,覆盖范围广。

总结:

  • 用于在 .NET Framework 和所有其他平台之间共享代码,使用netstandard2.0
  • 用于在 Mono,Xamarin 和 .NET Core 3.x 之间共享代码,使用netstandard2.1
  • 向后共享代码,使用net5.0
展开阅读全文
3 收藏
分享
加载中
精彩评论
kpi oriented programming
2020-09-18 10:15
7
举报
放心好了,.NET Core 以 MIT 协议开源,你就算把它的代码下载下来然后闭源,再原模原样商业化卖出去都不会违反协议。MIT 是最宽松的开源协议,而且不可撤销。
2020-09-19 07:51
5
举报
一看这评论就知道你老湿不咋滴 😀
2020-09-19 07:00
4
举报
.net国内还有市场吗?
2020-09-18 11:33
3
举报
暂时还是先用.net core 3.1吧, 这是一个LTS版本. .net 5不是LTS版本, .net 6是
2020-09-18 12:34
2
举报
最新评论 (45)
微软停止更新 .NET5,.NET 6 取而代之
微软停止更新 .NET6,.NET 7 取而代之
微软停止更新 .NET7,.NET 8 取而代之
.........
2020-09-25 07:57
0
回复
举报
只这些名词就搞得人头大。更不要说去学习运用了。
2020-09-24 17:00
0
回复
举报
出个java字节码转.net的工具,不就可以吸引大量的java开发人员了么
2020-09-21 09:21
0
回复
举报
转字节码不难, 难的是整个JDK标准类库包括大量本地接口都要移植. 另外.NET还不支持JVM的软引用和虚引用的机制.
2020-09-21 10:00
1
回复
举报
有个 IKVM.NET 的项目这么搞过,已经停止维护了,现在有人想让 GraalVM 支持 C# https://github.com/oracle/graal/issues/349
2020-09-21 11:37
0
回复
举报
终于统一,搞明白了
2020-09-20 17:40
0
回复
举报
终于不维护了。。自从要跨平台了,出了.net core 就各种版本。。。都分不清了
2020-09-19 18:50
0
回复
举报
跟着微软脚步就是累,嘿嘿
2020-09-18 22:11
0
回复
举报
会不会禁止华为等使用啊。等用习惯了,会不会被禁用???
2020-09-18 15:01
1
回复
举报
放心好了,.NET Core 以 MIT 协议开源,你就算把它的代码下载下来然后闭源,再原模原样商业化卖出去都不会违反协议。MIT 是最宽松的开源协议,而且不可撤销。
2020-09-19 07:51
5
回复
举报
MIT宽松点还是BSD宽松点?
2020-09-20 21:46
0
回复
举报
MIT
2020-10-02 18:17
0
回复
举报
开源的东西不存在被禁止的问题,你想多了
2020-09-19 17:50
0
回复
举报
当年学java的时候,老师说,微软那边,就是会起名字,你看java这边,jsf,jstl你不说谁知道跟jsp的关系,而微软那边,asp.net,跟asp没半毛钱关系,一堆学asp的去学asp.net,现在微软也是,core跟framework不是一个东西
2020-09-18 13:39
0
回复
举报
一看这评论就知道你老湿不咋滴 😀
2020-09-19 07:00
4
回复
举报
你老湿一看就是菜bird,误人子弟
2020-09-21 10:33
1
回复
举报
一坑又比一坑深
2020-09-18 13:08
0
回复
举报
win7还能支持net5.0么。
2020-09-18 13:02
0
回复
举报
更多评论
47 评论
3 收藏
分享
返回顶部
顶部