如何在服务器应用中选择 .NET Framework 和 .NET Core






4.88/5 (10投票s)
本文将帮助您为服务器应用选择 .NET Framework 和 .NET Core
引言
DevOps 在过去几年中得到了飞速发展。曾经有人使用 VB 6 编写 EXE 程序,在 Win XP 上运行以检查是否安装了 .NET Framework。如今,我们从 .NET 1.0 发展到 4.5.x,再到现在的 .NET Core。
.NET 的结构、CLR、MSIL 历经多年发生了巨大变化。.NET 不再局限于 Windows 或特定版本的操作系统,它取得了长足的进步,并支持跨平台、微服务、Docker 容器、移动性、云计算和可靠性等现代功能。然而,问题依然存在:**何时选择 .NET Framework** 和 **何时选择 .NET Core**。让我们一起阅读本文,它将帮助您为服务器应用选择 .NET Framework 和 .NET Core。
准备工作
如果您想开发 Web 应用程序/Web 应用,那么有两个强大的**基础**可供您选择,即 .NET Framework 或 .NET Core。毋庸置疑,两者都包含许多相似的组件,但也存在一些根本性的差异。您可以根据您的需求和应用程序的性质来选择其中之一。
何时选择 .NET Framework
这个问题的简短答案是:“当 .NET Core 无法在所有服务器应用及其相关组件中取代 .NET Framework 时,您就需要选择它。”
- 如果您有一个现有的 .NET Framework 应用程序,并想在 .NET Core 中开发新部分,请不要尝试这样做。与其使用 .NET Core,不如创建一个单独的附加模块(用 .NET Core 开发),然后从 .NET Framework 调用它(例如,使用 .NET Core 实现微服务)。
- 很有可能您正在使用某个第三方 DLL,它是为 .NET Framework 开发的,但在 .NET Core 中不可用。在这种情况下,您应该只选择 .NET Framework。
- 如果存在任何 .NET Framework 技术在 .NET Core 中不可用,那么请不要选择 .NET Core。以下是 .NET Framework 中一些不在 .NET Core 中的常见技术列表。
- WCF 服务实现:您无法从 ASP.NET Core 消费 WCF 服务,但未来他们可能会考虑此功能。
- WF (Windows Workflow Foundation) 在 .NET Core 中也不可用。
- ASP.NET Web Forms:.NET Core 中不存在 Web Forms,并且可能也没有未来的计划。
- 有限的语言支持:VB (Visual Basic) 和 F# 目前在 .NET Core 中可用,但并非所有项目类型都支持。
- ASP.NET 网页也是其中的例子。
但是,微软正在努力改进这些方面,并尝试将尽可能多的功能集成到 .NET Core 中。您可以在此处查看列表。
何时选择 .NET Core
这是全新的 .NET 技术,与 .NET 相比,它的基础结构有所不同。毫无疑问,它没有 .NET Framework 那么多的类和库支持,但它比 .NET Framework 更快、更模块化。
- 如果您想在多个平台上运行您的应用程序,那么可以选择 .NET Core。.NET Core 支持所有流行的平台,如 Windows、Mac、Linux,跨平台是 .NET Core 的最大优势。
- 如果您想在 MACOs 或 Linux 上开发应用程序,那么可以选择 .NET Core,因为您可以使用 Visual Studio Code(它是开源且免费的,更多详情请访问Code.Visualstudio.com)。此外,还有一些第三方编辑器可供选择。
- 当您想使用微服务时,可以选择 .NET Core。(在微服务中,我们将大型项目分解为较小的独立可运行模块,这些模块通过 API 调用相互通信)。这也有助于我们在单个项目中混合不同的技术(例如,我们可以混合 Java、Ruby、.NET Framework)。
- 当您需要高可伸缩性和良好性能时,可以使用 .NET Core。.NET Core 比 .NET Framework 更快,有助于降低服务器和 VM 成本,它仅加载真正需要的最小库集。
- .NET Core 对容器有无缝支持。.NET Core 可以与不同的设计模式和微服务一起使用。ASP.NET Core 是跨平台的。与 .NET Framework 相比,更容易在 .NET Core 中部署 Docker 容器。
- .NET Core 允许您在同一台机器上安装不同版本的 .NET Core,这样您就可以并行运行针对特定已安装 .NET Core 版本的 .NET Core 应用程序。
关注点
开发人员对学习和实现 .NET Core 非常好奇,但它也有一些优点和缺点。如果您正在运行一个基于 .NET Framework 构建的大型企业应用程序,请不要尝试迁移它。首先考虑您的需求,然后再继续。
最后
技术的引入和增强是为了克服早期技术问题,但我们总需要决定是否继续前进。此时,时间、成本、资源和需求是影响决策的四个因素。最终,您想完成什么取决于您的选择。
感谢阅读!