我是.NET新手,对术语有些疑惑。.NET Core和.NET 5有什么区别? .NET Core和.NET 5有什么区别?

3

.NET Framework仅支持Windows平台。 .NET Core支持Windows、Linux和Mac OS。 .NET Core将不支持安卓和iOS。

.NET 5支持Windows、Mac OS、Linux、Android和iOS。

我在上述所有观点中都是正确的吗?


您可能希望接受回复作为答案,并在需要了解更多信息时发表更多评论。 - Konrad Viltersten
2个回答

4

这并不是一个精确的答案,但对于新手来说很好,他们可能会被官方和繁琐的信息所困惑和压倒。

有两个平行的平台。

  1. .NET Framework
  2. .NET Core

.NET 5 将这两个合并为一个。因此,.NET 5 是 .NET Core 的下一代(某种程度上),但它也更为复杂。至于支持的操作系统,你的理解不完全正确,也不算错。这不是一个简单的是/否问题。它可能会在某些操作系统上支持某些功能得更好,而某些功能则不太适用。这是一个森林,而且在不断变化。

现在,你可能会有特定考虑,比如目前应该学习哪个。对于这个问题,你应该选择 .NET 5。(除非有具体原因,比如工作要求,让你去使用当前版本的 .NET Core 3.x 或者 .NET Framework 4.x)。

你可能还会想知道这些平台之间有多大的区别。对于我来说,差异巨大,简直是白天和黑夜的区别。然而,对于你来说(根据你提出的问题所建议的熟练程度),这些差异微不足道,即使它踢了你的蛋蛋也未必察觉得到。这是一件好事,你不会做出错误的选择。

另一个问题可能是你是否能按照要求部署你的产品。你肯定可以。然而,选择另一个框架可能会让这变得更容易,但也可能让它变得更困难。总体来说,你在使用通用目的的框架时不会受到阻碍。


还有Mono,我认为它也正在合并到dotnet 5+中。 - Aron
值得注意的是,如果您需要更改到platformY,那么在platformX上投入的大部分工作将被保留。也就是说,一个平台的代码基本上与另一个平台的代码相同。 - user16952718
@Aron 你说得有点对。Mono已经(有点)合并到.NET Core中了(请注意“有点”,我为了让OP理解而牺牲了一定的准确性)。而且,微软希望将所有技术分支(EF、MVC、WebAPI、Xamarin等)合并到一个平台上,这是非常正确的想法!我迫不及待地想看看它能走多远,直到我们拥有.NET 5(基础版)、.NET 5(桌面版)等等。我希望我错了。(万事开头难嘛。) - Konrad Viltersten
@CallumMorrisson 你在技术上是正确的,但你所说的有一个陷阱。虽然保留的代码将会工作(大部分情况下),但我们在迁移时应该重新编码。否则,我们将只保留旧的风格,而不使用酷炫的新特性。我有一些同事是“具有Java背景的C#开发人员”。他们是优秀的程序员,程序运行良好。他们是否使用属性(而不是get/set方法)?他们是否使用LINQ?猜猜看... :) - Konrad Viltersten
@KonradViltersten 我完全同意这种情感,最近我一直在使用一个系统,其中许多核心库是针对 .Net 2.0 编写的,当时它还是全新的。这是一种克制的锻炼。但我的观点更多地涉及初学者担心从哪里开始他们的 .Net 之旅;解决选择错误起点的 FOMO。在这方面,实际上并不重要,如果你发现需要在项目进行到一半时更改平台,你不会在过渡中失去太多东西。 - user16952718
显示剩余3条评论

0

.NET 5是一个综合平台,包括以下库和框架:

  1. .NET Framework
  2. .NET Core
  3. Xamarin

对于跨平台开发,.NET Core框架版本1.0到3.1覆盖了Web应用程序、Windows表单应用程序、服务器应用程序、移动应用程序和云托管应用程序的开发。

ASP.NET Core是ASP.NET的开源版本,可在macOS、Linux和Windows上运行。版本为1.1到3.1在.NET Core中,版本5适用于.NET 5。

https://dotnet.microsoft.com/learn/aspnet/what-is-aspnet-core

ASP.NET是ASP.NET的Windows版本,它是一个平台,允许开发在Windows服务器上托管的Web应用程序。版本从1.x到4.x。

https://dotnet.microsoft.com/apps/aspnet

Xamarin 平台(不是 .NET Core 的一部分)允许进行跨平台的 Android 和 IOS 移动开发,并作为 .NET 5 平台的一部分。

https://dotnet.microsoft.com/apps/xamarin

针对 Windows 平台开发,.NET Framework 版本 1.0 至 4.8 覆盖了 Windows 客户端和服务器应用程序的开发。

https://learn.microsoft.com/en-us/dotnet/framework/get-started/overview

由于.NET Core框架的一些重命名混淆,微软在一些技术中仍保留了“Core”名称。
例如,ASP.NET Core 3.1在新的ASP.NET Core 5框架中仍保留其Core名称,而不是与仍被许多开发人员使用的ASP.NET 5或ASP.NET MVC 5混淆。
另一个例子是基于.NET Framework的ORM提供程序Entity Framework 5和基于.NET Core的ORM提供程序Entity Framework Core 5,它们都保留了它们的名称,以避免在.NET 5平台内产生混淆。
根据您的应用程序开发目标(跨平台、Windows、移动、服务器等),您可以从.NET Core或.NET Framework兼容包中选择项目模板和库,在.NET 5(及更高版本)中实现您的目标。

我一直认为Xamarin是.NET Framework的一部分(当微软收购Xamarin的股份时,第一个版本就是这样)。他们现在是否将Xama视为一个独立的平台?不仅仅是一个(庞大而强大的)库? - Konrad Viltersten
Xamarin框架使用Mono库,这是一个针对移动设备的跨平台简化版.NET Framework。因此,如果您知道如何在.NET Framework中开发,则学习Xamarin框架应该很简单。Mono是.NET Framework的跨平台版本,Microsoft在20年前发布了它,而完整的.NET Framework尚未发布。在2016年微软收购Xamarin之前,它是一种许可开发平台,现在它是免费且开源的。 - Andrew Halil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接