【问题标题】:I'm newbie to .NET. I have some doubts in understanding terminologies .What is the difference between .NET core and .NET 5?我是.NET 的新手。我对理解术语有一些疑问。.NET core 和 .NET 5 有什么区别?
【发布时间】:2021-09-20 18:31:03
【问题描述】:

.NET Framework 仅支持 Windows 平台。 .NET 核心支持 Windows、Linux 和 Mac OS。 .NET Core 将不支持 andriod 和 ios。

.NET 5 支持 Windows、MAC OS、LINUX、Anroid 和 IOS。

以上几点我都正确吗?

标签: c#


【解决方案1】:

不是一个准确的答案,但对于一个容易被官方和令人筋疲力尽的信息感到困惑和不知所措的新手来说是件好事。

有两个并行平台。

  1. .NET 框架
  2. .NET 核心

.NET 5 会将这两者合并为一个。所以 .NET 5 是 .NET Core 的下一代(某种意义上)。但它也不是更多。至于支持的操作系统,你没有错,但你也不太对。这不完全是一个是/否的问题。它可能很好地支持某些操作系统的某些功能,并且与您的需要相对应。这是一片丛林,它在不断变化。

现在,您可能有具体的考虑,例如现在应该学习哪些。在这个问题上 - 你应该使用 .NET 5。(除非有特定原因,例如工作要求,你可以使用当前版本的 .NET Core 3.x 或 .NET Framework 4.x,它是它当前的 dito)。

您可能还想平台之间的差异有多大。对此,有两个答案。对我来说,这是巨大的——基本上是白天和黑夜。对你来说,假设你的问题建议的熟练程度,它可以忽略不计 - 即使它让你发疯,你也不会注意到。这是一件好事。不能选错。

另一个问题可能是您是否能够按照要求的方式部署您的产品。你会。但是,选择另一个框架可能会更容易。它也可能使这更难。底线是,您只有到了那里才知道,但通用框架永远不会阻止您。

【讨论】:

  • 还有 Mono,恕我直言,它也正在合并到 dotnet 5+ 中。
  • 还值得注意的是,如果您需要更改为 platformY,则将保留大部分在 platformX 上的代码库所投入的精力。即一个的代码与另一个的代码基本相同。
  • @Aron 你说得对。 Mono 已经(某种程度上)合并到 .NET Core 中(请注意那种,我希望以某些不准确为代价让 OP 可以理解)。 MS 希望将任何和所有的技术新芽(EF、MVC、WebAPI、Xamarin 等)合并到一个平台中是完全正确的。很好的主意!我迫不及待地想看看在我们拥有 .NET 5(基本)、.NET 5(桌面)等之前需要多长时间。我希望我错了。 (凡事都有第一次。)
  • @CallumMorrisson 你在技术上是正确的,但你所说的有一个陷阱。虽然保留的代码(大部分)可以工作,但我们应该在迁移时重新编码。否则,我们将只保留旧样式而不使用酷炫的功能。我的同事是“具有 Java 背景的 C# 开发人员”。好的编码员和程序运行良好。他们是否使用属性(而不是获取/设置方法)?他们使用 LINQ 吗?猜一猜... :)
  • 天啊。我讨厌非惯用的 C#。我个人的烦恼是当他们有 .Close() 时。现在我必须尝试 finally 块!
【解决方案2】:

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

  1. .NET 框架
  2. .NET 核心
  3. Xamarin

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

ASP.NET Core 是 ASP.NET 的开源版本,可在 macOS、Linux 和 Windows 上运行。 .NET Core 中的版本为 1.1 到 3.1,.NET 5 的版本为 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://docs.microsoft.com/en-us/dotnet/framework/get-started/overview

由于将某些 .NET Core 框架重命名为 .NET 5 框架时存在混淆,微软在其某些技术中保留了“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 5(及更高版本)内的 .NET Framework 兼容包中选择项目模板和库这将实现您的目标。

【讨论】:

  • 我一直认为 Xamarin 是 .NET Framework 的一部分(在第一个版本中 MS 收购 Xamarin 的股份时就是如此)。他们现在是否将 Xama 视为一个单独的平台?不仅仅是一个(巨大而强大的)库?
  • Xamarin 框架使用 Mono 库,这是适用于移动设备的 .NET Framework 的跨平台精简版。因此,如果您知道如何在 .NET 框架中进行开发,那么 Xamarin 框架应该是简单易学的。 Mono 是 Microsoft 大约 20 年前在完整的 .NET Framework 发布之前构建的 .NET Framework 的跨平台版本。在 Microsoft 于 2016 年收购 Xamarin 之前,它是一个获得许可的开发平台,现在它是免费和开源的。
猜你喜欢
  • 1970-01-01
  • 2020-05-08
  • 1970-01-01
  • 2015-10-27
  • 2015-01-10
  • 1970-01-01
  • 2016-10-30
  • 1970-01-01
  • 2016-11-08
相关资源
最近更新 更多