.NET Core、.NET Framework和Xamarin有什么区别?
.NET Core, .NET Framework和Xamarin之间的区别是什么?
在这篇文章中,我们将探讨.NET Core、.NET Framework和Xamarin之间的区别。首先,我们需要了解为什么会有这个问题以及如何解决它。
问题的出现可以追溯到Stack Overflow上的一个帖子,帖子的链接为https://stackoverflow.com/questions/37684508/37684644#37684644。在这个帖子中,有人询问了ASP.NET Core (.NET Core)和ASP.NET Core (.NET Framework)之间的区别。通过阅读帖子,我们可以找到一些关于.NET Core、.NET Framework和Xamarin的信息。
为了更好地理解问题,我们还需要参考一些其他资源。在帖子中提到了两个链接:https://blogs.msdn.microsoft.com/dotnet/2016/07/15/net-core-roadmap/和https://learn.microsoft.com/en-us/dotnet/articles/standard/choosing-core-framework-server。这些链接提供了更多关于.NET Core、.NET Framework和Xamarin的详细信息。
根据这些资源,我们可以总结出以下关于.NET Core、.NET Framework和Xamarin的信息:
- Xamarin是一个跨平台的移动应用程序开发框架,支持使用C#开发iOS、Android和Windows Mobile应用程序。
- .NET Framework是一个支持Windows和Web应用程序的框架。在.NET Framework中,我们可以使用Windows Forms、WPF和UWP来构建Windows应用程序,使用ASP.NET MVC来构建Web应用程序。
- .NET Core是一个新的开源、跨平台的框架,用于构建适用于所有操作系统(包括Windows、Mac和Linux)的应用程序。.NET Core只支持UWP和ASP.NET Core。UWP用于构建针对Windows 10的Windows和移动应用程序,而ASP.NET Core用于构建基于浏览器的Web应用程序。
- Xamarin是基于Mono(或曾经是)的跨平台库,而Mono是另一个.NET标准的实现。需要注意的是,Xamarin(公司)收购了Mono(公司),后来这两个公司都被Microsoft收购。
通过整理这些信息,我们可以回答问题:“.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之上,这是一个为了跨平台支持而构建的.NET版本,在微软正式推出.NET Core之前,Mono就已经存在了。与Xamarin类似,Unity平台也运行在Mono之上。
一个常见的困惑点是ASP.NET Core的位置。ASP.NET Core可以在.NET Framework(Windows)或.NET Core(跨平台)之上运行,详细信息请参见这个答案:Difference between ASP.NET Core (.NET Core) and ASP.NET Core (.NET Framework)。
每当有人说.NET Core是跨平台时,新手开发人员就会感到困惑。'.NET Core'仅支持UWP + ASP.NET Core,而ASP.NET Core是跨平台的,UWP不是。
这并不完全正确。.NET Core指的是可以运行在Windows、Mac或Linux上的运行时和库。ASP.NET Core是跨平台的,因为.NET Core是跨平台的。
如果您提到尽管.NET Core(运行时和库)是跨平台的,但我们不能在Mac/Linux上使用UWP应用程序,那对于新手来说将会很有帮助。UWP不是跨平台的,我原本期望UWP是WPF的跨平台替代方案(Xamarin.Forms是)。
很好的建议,我已经编辑了我的回答。
UWP在.NET Core上运行,而不是在.NET Framework上。如果我错了,请纠正我。参考:Reference。
现在,Xamarin Forms可以在几乎所有平台上运行相同的代码库。包括Windows UWP桌面、WPF桌面、MacOS、iOS、Android和Tizen(电视)。默认情况下,它以.NET Standard为目标,使用Core实现。好时代!
.NET Core,.NET Framework和Xamarin之间的区别是什么?
在阅读了这篇文章之后,我们可以得出以下结论:
.NET Core是跨平台的,适用于需要在Windows、Linux和MacOS等不同平台上运行的应用程序。它由Microsoft官方支持,并且在开发过程中提供了许多功能和工具。.NET Core还适用于构建微服务系统,以及需要高性能和可扩展性的系统。
.NET Framework是一个完整的开发平台,用于构建Windows应用程序。它不是跨平台的,并且在微服务和高性能系统方面的支持相对较弱。
Xamarin是一个用于开发跨平台移动应用程序的工具集。它可以在iOS、Android和Windows等不同平台上使用,并且可以与.NET Core或.NET Framework集成。
根据以上信息,我们可以得出以下解决方法:
在需要跨平台应用程序的情况下,使用.NET Core作为开发平台,以确保应用程序可以在不同操作系统上运行。
对于构建微服务系统和需要高性能和可扩展性的系统,使用.NET Core是最佳选择。如果需要使用.NET Framework库,但不兼容.NET Core,可以在微服务中使用.NET Framework,并在未来将其替换为.NET Core。
如果需要使用命令行进行开发,可以选择使用.NET Core,因为它提供了简单的命令行工具,适用于Mac、Linux和Windows等平台。
如果需要应用程序级别的不同版本的依赖关系,可以使用.NET Core,它提供了100%的并行依赖关系。
对于开发Windows 10 UWP .NET应用程序,可以选择使用.NET Core或Xamarin。
总之,根据应用程序的需求和开发环境的不同,选择合适的开发平台是很重要的。通过了解.NET Core、.NET Framework和Xamarin之间的区别,开发人员可以根据自己的需求做出明智的选择,以确保应用程序能够在不同平台上运行,并具有高性能和可扩展性。