显然,如果你的目标是拥有一个应该能够跨平台(Windows、Linux和MacOS)运行的应用程序(网络/服务),那么在.NET生态系统中的最佳选择是使用.NET Core,因为它的运行时(CoreCLR)和库是跨平台的。另一个选择是使用Mono项目。
这两种选择都是开源的,但.NET Core是由微软直接和官方支持的,并将在未来有大量的投资。
当跨平台使用.NET核心时,最好的开发体验存在于Windows上的Visual Studio IDE,它支持许多生产力功能,包括项目管理、调试、源码控制、重构、包括Intellisense的丰富编辑、测试等等。但在Mac、Linux和Windows上使用Visual Studio Code也支持丰富的开发,包括智能识别和调试。甚至像Sublime、Emacs、VI等第三方编辑器也能很好地工作,并且可以使用开源的Omnisharp项目获得编辑器的智能提示。
使用.NET Core时,这种方法是可选的。当然,你也可以使用完整的Visual Studio IDE。但如果你是一个想用轻量级编辑器和大量使用命令行进行开发的开发者,.NET核心是为CLI设计的。它提供了在所有支持的平台上可用的简单命令行工具,使开发者能够在开发者、实验室或生产机器上以最小的安装量构建和测试应用程序。像Visual Studio Code这样的编辑器使用相同的命令行工具来实现其开发体验。而像Visual Studio这样的IDE使用相同的CLI工具,但将它们隐藏在丰富的IDE体验背后。开发人员现在可以选择他们想与工具链互动的级别,从CLI到编辑器到IDE。
根据文档[这里][1],你应该在以下6种典型情况下使用.NET核心,而不是.NET框架或Xamarin。
微软是这样解释的。
![.NET框架、.NET核心、Xamarin][1] 。
.NET框架是与Windows一起分发的"完整"或"传统"的.NET风味。当你建立一个桌面Windows或UWP应用程序,或使用旧的ASP.NET 4.6以上的应用程序时,请使用它。
.NET Core是跨平台的.NET,可以在Windows、Mac和Linux上运行。当你想建立可以在任何平台上运行的控制台或Web应用程序时,包括在Docker容器内,就可以使用它。目前这不包括UWP/桌面应用程序。
Xamarin用于构建可在iOS、Android或Windows Phone设备上运行的移动应用程序。
Xamarin通常运行在Mono之上,这是一个.NET的版本,在微软决定用.NET Core正式实现跨平台之前,它是为跨平台支持而建立的。与Xamarin一样,Unity平台也运行在Mono之上。
一个常见的混淆点是ASP.NET Core的位置。ASP.NET Core可以运行在.NET Framework(Windows)或.NET Core(跨平台)之上,详见此答案。ASP.NET Core(.NET核心)和ASP.NET Core(.NET框架)之间的区别
你可以在这一行参考 - https://stackoverflow.com/questions/37684508/difference-between-asp-net-core-net-core-and-asp-net-core-net-framework/37684644#37684644
![.NET框架,.NET核心,Xamarin][1] 。
Xamarin根本就不是一个辩论。当你想使用C#构建移动(iOS、Android和Windows Mobile)应用程序时,Xamarin是你唯一的选择。
.NET框架支持Windows和Web应用程序。如今,你可以在.NET框架中使用Windows Forms、WPF和UWP来构建Windows应用程序。ASP.NET MVC被用来在.NET框架中构建Web应用程序。
.NET Core是一个新的开源和跨平台的框架,可以为所有的操作系统(包括Windows、Mac和Linux)构建应用程序。.NET Core只支持UWP和ASP.NET Core。UWP用于构建针对Windows 10的Windows和移动应用程序。ASP.NET Core用于构建基于浏览器的Web应用程序。
如果您想了解更多细节,请参考以下链接 https://blogs.msdn.microsoft.com/dotnet/2016/07/15/net-core-roadmap/ https://docs.microsoft.com/en-us/dotnet/articles/standard/choosing-core-framework-server
.NET标准是.NET生态系统的标准(换句话说,规范)。
>..Net核心类库是建立在.Net标准之上的。 .Net核心类库是建立在.Net标准之上的。 .NET标准你只能做出不能独立执行的类库项目,应该由另一个.NET Core或 .NET Framework可执行项目引用。如果你想实现一个可移植到.Net Framework、.Net Core和Xamarin的库,请选择.Net标准库。
.NET核心也是一个基于.NET的框架。
&gt.NET核心也是一个基于.NET**的框架。 它是新的开源和跨平台的框架,可以为包括Windows、Mac和Linux在内的所有操作系统构建应用程序。
[1]: https://i.stack.imgur.com/VtDdV.png
.NET Core是你现在应该使用的.NET当前版本(更多的功能,固定的bug等)。
Xamarin是一个为跨平台移动问题提供解决方案的平台,用C#编码,这样你就不需要为IOS单独使用Swift,Android也是如此。
2019年5月更新
你应该使用.Net Core 3.0和以后升级到其下一个版本.Net 5。 你所需要的只是一个统一的平台.Net5。