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

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


当前回答

微软是这样解释的:

. 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 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.

[截至2022年2月]

net框架

专有的框架 主要适用于Windows操作系统 4.8版本是它的最终版本。 对它的支持可能会在Windows 10(以及它的其他兄弟服务器)结束

.NET(以前的。net Core)

免费开源 跨平台的 .NET框架的继承者 目前。net 6是LTS版本

Xamarin的

免费开源 用于使用。net和c#构建Android和iOS应用程序 .NET的一部分

微软是这样解释的:

. 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框架工作用于windows基础应用程序。 . net核心框架工作用于跨平台基础应用程序。 Xamarin框架工作用于移动应用程序开发。

Xamarin用于手机应用程序(IOS/Android)。. net Core用于设计可以在Apache和IIS上运行的Web应用程序。

这就是两句话的区别。