65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.88/5 (10投票s)

2018年10月12日

CPOL

4分钟阅读

viewsIcon

19939

本文将帮助您为服务器应用选择 .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 时,您就需要选择它。”

  1. 如果您有一个现有的 .NET Framework 应用程序,并想在 .NET Core 中开发新部分,请不要尝试这样做。与其使用 .NET Core,不如创建一个单独的附加模块(用 .NET Core 开发),然后从 .NET Framework 调用它(例如,使用 .NET Core 实现微服务)。
  2. 很有可能您正在使用某个第三方 DLL,它是为 .NET Framework 开发的,但在 .NET Core 中不可用。在这种情况下,您应该只选择 .NET Framework。
  3. 如果存在任何 .NET Framework 技术在 .NET Core 中不可用,那么请不要选择 .NET Core。以下是 .NET Framework 中一些不在 .NET Core 中的常见技术列表。
    1. WCF 服务实现:您无法从 ASP.NET Core 消费 WCF 服务,但未来他们可能会考虑此功能。
    2. WF (Windows Workflow Foundation) 在 .NET Core 中也不可用。
    3. ASP.NET Web Forms:.NET Core 中不存在 Web Forms,并且可能也没有未来的计划。
    4. 有限的语言支持:VB (Visual Basic) 和 F# 目前在 .NET Core 中可用,但并非所有项目类型都支持。
    5. ASP.NET 网页也是其中的例子。

但是,微软正在努力改进这些方面,并尝试将尽可能多的功能集成到 .NET Core 中。您可以在此处查看列表。

何时选择 .NET Core

这是全新的 .NET 技术,与 .NET 相比,它的基础结构有所不同。毫无疑问,它没有 .NET Framework 那么多的类和库支持,但它比 .NET Framework 更快、更模块化。

  1. 如果您想在多个平台上运行您的应用程序,那么可以选择 .NET Core。.NET Core 支持所有流行的平台,如 Windows、Mac、Linux,跨平台是 .NET Core 的最大优势。
  2. 如果您想在 MACOs 或 Linux 上开发应用程序,那么可以选择 .NET Core,因为您可以使用 Visual Studio Code(它是开源且免费的,更多详情请访问Code.Visualstudio.com)。此外,还有一些第三方编辑器可供选择。
  3. 当您想使用微服务时,可以选择 .NET Core。(在微服务中,我们将大型项目分解为较小的独立可运行模块,这些模块通过 API 调用相互通信)。这也有助于我们在单个项目中混合不同的技术(例如,我们可以混合 Java、Ruby、.NET Framework)。
  4. 当您需要高可伸缩性和良好性能时,可以使用 .NET Core。.NET Core 比 .NET Framework 更快,有助于降低服务器和 VM 成本,它仅加载真正需要的最小库集。
  5. .NET Core 对容器有无缝支持。.NET Core 可以与不同的设计模式和微服务一起使用。ASP.NET Core 是跨平台的。与 .NET Framework 相比,更容易在 .NET Core 中部署 Docker 容器。
  6. .NET Core 允许您在同一台机器上安装不同版本的 .NET Core,这样您就可以并行运行针对特定已安装 .NET Core 版本的 .NET Core 应用程序。

关注点

开发人员对学习和实现 .NET Core 非常好奇,但它也有一些优点和缺点。如果您正在运行一个基于 .NET Framework 构建的大型企业应用程序,请不要尝试迁移它。首先考虑您的需求,然后再继续。

最后

技术的引入和增强是为了克服早期技术问题,但我们总需要决定是否继续前进。此时,时间、成本、资源和需求是影响决策的四个因素。最终,您想完成什么取决于您的选择。

感谢阅读!

© . All rights reserved.