c# - 我应该使用 .NET Core 还是 .NET 5?
问题描述
我将很快着手为我的组织编写一个主要针对 Windows 机器的新组件。但是,将来它也可能在 Linux 系统上使用。
- 鉴于 .NET 5 的出现,在 .NET Core 中编写它有什么意义?
- 我在 LTS 中看到了 .NET Core 3.1,但不确定 .NET 5。.NET 5 是否处于适合在生产应用程序中使用的状态?
- 此外,.NET 标准是否应该在这个决策过程中发挥作用?
解决方案
这主要取决于您需要哪些功能以及您的库需要支持哪些目标。
提到的最低目标是.NET Standard 2.0。这样的库与任何.NET Core、.NET 5 甚至 .NET Framework 4.8都完全兼容——因此对于向后兼容来说,它是一个不错的选择。.NET Standard 2.1 不再与 FW 4.8 兼容,但具有许多与 .NET Core 3.1 一起引入的额外运行时功能,并且与 .NET Core 3.1 以上(包括 .NET 5+)兼容。
但是,您可以直接以 .NET Core 或 .NET 5 为目标。在这些情况下,您的库将与该版本的 .NET Core 或更高版本一起使用。请注意,.NET 5 本质上只是重新命名为 .NET Core,因此它仍然完全兼容。
.NET 5 已准备好生产,但不是 LTS - 从现在开始,.NET 的偶数版本将是 LTS,因此 .NET 6、.NET 8 等。新版本将每年发布。如果您想要最新最好的功能,您可以针对最新的 .NET。但是,只要您不需要一些较新的 API,您就可以针对较旧的版本并仍然在较新的版本中使用您的库,而不会出现任何问题。
推荐阅读
- python - python - 如何将一个数据帧附加到python列表中的多个数据帧?
- python - 根据另一个熊猫系列的索引从熊猫系列中提取数据
- icinga2 - 将依赖项应用于 icinga2 中的服务
- javascript - (Chrome 扩展)无法将消息从 background.js 传递到 popup.js
- php - 使用 php artisan serve 在 localhost 上提供多个 laravel 应用程序
- c# - 提高处理速度 c# datagridview foreach 检查行
- html - 为什么我不能让容器幻灯片只响应图像
- python-3.x - 匹配两个字典的值并使用匹配的键值对更新其中一个字典内的列表
- java - 如何更改通用数组列表中的值?
- sql - SQL Query 在 Db Browser for SQLite 中执行但在 node.js 中实现时不起作用