.NET Core 是 Microsoft 最新的开源、跨平台 .NET 实现。它与 .NET Framework 有许多相似之处,但开发人员在迁移其应用程序时也需要了解一些关键差异。

   在本综合指南中,我们将介绍什么是 .NET Core、迁移的关键原因、迁移中涉及的主要步骤以及可提供帮助的资源。无论你是维护旧版 .NET Framework 应用程序还是构建新的基于云的微服务,请继续阅读以确定 .NET Core 是否是满足你需求的正确路径。

什么是 .NET Core?

   .NET Core 是 .NET Framework 的更名和开源变体。.NET Core 的主要目标包括实现 Windows 之外的跨平台支持,以及构建针对云和微服务优化的模块化框架。

从 .NET Framework 迁移到 .NET Core 的综合指南_跨平台

与  .NET Framework 的一些主要区别包括:

  • 对 Linux 和 macOS 的跨平台支持
  • GitHub 上的开源,采用以社区为中心的模型
  • 模块化架构,无整体基类库
  • 并行版本控制,使应用能够选择运行时版本
  • 改进了应用程序部署,减少了对系统的依赖

这些优势使 .NET Core 对基于云的容器化工作负载具有吸引力。随着 Microsoft 和社区贡献者的频繁更新,平台和工具不断发展。

为什么要迁移到 .NET Core?

现在有几个关键动机可以将 .NET Framework 转换为 .NET Core:

  1. 跨平台支持: 使用 .NET Core,可以在 Windows、macOS 和 Linux 上托管应用。这为部署到非 Windows 环境提供了额外的灵活性。
  2. 改进的性能:.NET Core 已重新构建,以优化吞吐量和效率,尤其是对于云服务器工作负载。基准测试显示对 .NET Framework 有重大改进。
  3. 降低资源使用率:较小的应用占用空间为云服务提供更好的密度。.NET Core 消除了许多扩充 .NET Framework 应用大小的旧依赖项。
  4. 开源和以社区为中心:由于 .NET Core 是开源的,开发人员可以通过单步执行 GitHub 上的框架代码来轻松调试问题。该平台还受益于 Microsoft 外部的社区补丁和增强功能。
  5. 并行版本控制: 应用可以指定目标 .NET Core 版本,而不是绑定到计算机范围的 .NET Framework 版本。这样可以简化升级和解耦。
  6. 容器化:.NET Core 针对 Docker 容器和微服务进行了优化,减少了依赖项和项目发布。这支持 DevOps 工作流。
  7. 云和微服务: 除了容器之外,.NET Core 还可以与 Kubernetes 等业务流程协调程序和 AWS Lambda 等无服务器平台很好地集成。模块化架构非常适合微服务。

从 .NET Framework 迁移到 .NET Core 的综合指南_Core_02

这些功能(包括跨平台支持、性能和效率)使 .NET Core 成为用于新应用程序开发和迁移现有应用的有吸引力的新式平台。它的开源性质也允许社区随着时间的推移做出贡献。因此,这项技术将在很长一段时间内发挥作用,这使得 .NET Framework 到 .NET Core 的迁移服务成为一个非常有吸引力的选择。

如何将 .NET Framework 应用迁移到 .NET Core

将应用从 .NET Framework 迁移到 .NET Core 可能涉及几个关键步骤:

1. 分析兼容性

查看 .NET Framework 应用和插件中使用的所有依赖项和 API,以确定它们在 .NET Core 中是否受支持。检查数据库、库、框架和任何其他外部集成。

2.将目标更改为 .NET Core2.2.

在 Visual Studio 中,可以通过项目设置将现有 .NET Framework 应用重新定位到 .NET Core。这将自动处理许多代码迁移。

3.更新 NuGet 包3.

使用新的目标框架更改后,还原  NuGet 包以拉取特定于 .NET Core 的依赖项版本。解决生成过程中的任何冲突或重大更改。

4. 修改不兼容的 API

根据最初完成的分析,更新代码中引用 .NET Framework 中不受支持的 API 的区域。利用 .NET 可移植性分析器查找这些问题。

5. 测试和调试

运行所有单元测试以验证核心功能。跨 Windows、Linux 和 macOS 进行本地测试,以验证跨平台支持。根据需要挂接调试器以单步执行问题。

6. 部署和监控

测试通过后,利用 Docker、Kubernetes 或云服务将转换后的应用程序部署到新的基础架构。监视性能并记录大规模出现的任何新错误。

从 .NET Framework 迁移到 .NET Core 的综合指南_.net_03

用于将 .NET Framework 迁移到 .NET Core 的资源Resources for Migrating .NET Framework to .NET Core

下面是一些有助于迁移工作的其他资源:

  • .NET 可移植性分析器: 扫描程序集并生成有关 .NET Core 兼容性问题的报告。
  • .NET API 分析器: 查找 .NET Core 中不可用的已弃用的 .NET Framework API 的用法。
  • Visual Studio 重定向:使用 Visual Studio 的自动化工具将项目文件转换为 .NET Core。
  • .NET Framework 迁移指南:.NET Framework migration guide: Microsoft 的技术指南和用于过渡到 .NET Core 的 API 映射。
  • Dockerizing .NET Core 应用:用于容器化应用以简化部署的实践指南。
  • 使用 .NET Core 的微服务:将单体分解为分布式服务的模式和最佳做法。

结论

从  .NET Framework 迁移到跨平台 .NET Core 需要仔细规划,但可以释放新式应用程序体系结构的性能效率和灵活性。该过程的核心是分析兼容性、转换项目文件、更新 NuGet 包以及修改依赖于过时的 .NET Framework API 的代码。通过一些前期投资,采用 .NET Core 可以使应用保持相关性,并准备好利用云和容器创新。