微软之所以放弃使用.net standard 规范来统一.net 生态系统api,主要是有如下几点原因
1 .net standard 仅仅是定义了一个规范,所有要实现该规范的平台必须实现里面定义的所有功能,这样就会导致要往.net standard新版本里面添加新API变得特别缓慢,因为要考虑所有已知平台能否实现,也就是说.net standard 很像程序里面的接口,.net standard定义了一系列的接口,不同平台分别去实现,而.net 5+则是代码库是统一共享的,不需要分别对应不同平台实现。
2 .net standard 规范和其实现之间的版本号映射之间异常混乱。
3 .net standard 中定义了一些特定于某些平台的api,当被迁移到另外一个平台时,编译也许不会报错,但却可能在运行时出现异常。