微软现在拥有。net Core、。net Framework和Xamarin (Mono)。

这里似乎有很多重叠。这些类型的。net平台有什么不同?什么时候我应该选择在我的项目中使用。net Core,而不是。net Framework或Xamarin?


当前回答

. net Core是你现在应该使用的。net的当前版本(更多的特性,修复的bug,等等)

Xamarin是一个提供用c#编写的跨平台移动问题解决方案的平台,所以你不需要在IOS和Android上单独使用Swift。

其他回答

.NET Framework - Windows only legacy implementation by Microsoft of .NET. Introduced in 2002, being phased out. .NET 5 (successor to .NET Core 3.1) - modern reimplementation of .NET Framework aimed at replacing it, supports Windows, macOS and Linux. Introduced in 2016, further version might absorb Xamarin Xamarin - Mono with platform bindings to non-windows OS's and APIs and tools tailored to mobile app development (iOS, Android and recently desktop). Introduced in 2012. Mono is a non Microsoft implementation of .NET developed by community and introduced in early 2000s and competing with .NET Framework.

. net Framework(最新版本4.8)只支持windows平台。意味着您的桌面应用程序只能在Windows上工作。web应用程序只能托管在Windows Server/Windows操作系统上 .Net Core(从。net Core 1, 2, 2.1, 3.1,最新版本5开始)是交叉的 平台。(windows, Linux, Mac)。 另一方面,Xamarin支持移动平台。(Android和IOS)。用于开发移动应用程序。

微软是这样解释的:

. net Framework是随Windows发布的。net的“完整”或“传统”版本。当您正在构建桌面Windows或UWP应用程序,或使用旧的ASP。NET 4.6 +。

. net Core是跨平台的。net,可以在Windows、Mac和Linux上运行。当你想要构建可以在任何平台上运行的控制台或web应用程序时,包括在Docker容器中。目前还不包括UWP/桌面应用程序。

Xamarin用于构建可在iOS、Android或Windows Phone设备上运行的移动应用程序。

Xamarin通常运行在Mono之上,Mono是。net的一个版本,在微软决定正式使用。net Core跨平台之前,它是为跨平台支持而构建的。net。与Xamarin一样,Unity平台也运行在Mono之上。


一个常见的混淆点是ASP。NET Core很适合。ASP。NET Core可以运行在。NET Framework (Windows)或。NET Core(跨平台)之上,详见下文。NET Core(。NET Core)和ASP。NET Core(。净框架)

. net 5将在2020年11月发布所有。net变体的统一版本,因此不再需要在变体之间进行选择。

. net Core是你现在应该使用的。net的当前版本(更多的特性,修复的bug,等等)

Xamarin是一个提供用c#编写的跨平台移动问题解决方案的平台,所以你不需要在IOS和Android上单独使用Swift。