微软.NET概念易混淆?

微软

1个回答

写回答

s249359986

2026-02-18 09:29

+ 关注

微软
微软

微软改名这种事很常见了。最初.NET Core是打算被命名为.NET Core 5.0的。去查看早期http://ASP.NET Core(那时候叫http://ASP.NET 5)的预览版,就能看到dnx50这样的名称。用于UWP的.NET Core分支(.NET CoreUWP)也有netcore50这样的编码。为什么会被叫做5.0?也许是由于BCL是从.NET Framework 4.x分出来的吧。Windows 8.x的Metro App的.NET环境名为netcore45和netcore451。

但到了微软或许觉得新.NET和原.NET Framework差异过大,API也不完全兼容,所以就从1.0开始重新计算版本号(netcoreapp1.0)。

之后,.NET Framework停止更新大版本号,停留在4.x版本,目前最新版本为4.8.1。在.NET Core发展到3.1版本之后,微软看到当下.NET运行时呈现几方割据的局面(有.NET Core、.NET Framework、Mono、怪异的UWP等),于是决定发起.NET大一统运动。.NET Core 3.x把Windows桌面框架(WinForms和WPF)也移植过来了。从理论上讲,它能够支持.NET Framework的所有现有工作负载,完全可以替代.NET Framework(微软表示:WebForms和WCF之类的就忽略不计吧)。另一方面,微软把Mono的运行时MonoVM加以修改后放入.NET Core环境中,使其与.NET Core原本的CoreCLR并行,且共享BCL。到这个时候,.NET跨越桌面、移动、云端、IoT这四大平台时仅有一套标准库,CoreCLR和Mono只在运行时有差异,二者API相互兼容。于是,在实现大一统之后,.NET就顺理成章地沿用了.NET Framework的版本号,更名为.NET 5.0。

etc
etc

UWP已经很长时间没有.NET框架更新了,一直停留在.NET CoreUWP/.NET Native 2.2,这一版本对应的是.NET Standard 2.0。不过要是想玩,也能勉强运行起来。

从.NET 9起总算有了UWP官方支持,不过这和一直以来的hack方案差别不大。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号