• 在什么情况下使用.NET Core什么情况下使用.NET Framework?
  • 发布于 2个月前
  • 62 热度
    0 评论
  • 李明发
  • 19 粉丝 14 篇博客
  •   

我们知道现在微软现在已把技术的核心移动.NET Core平台,.NET Framwork最终版停留在了4.8版本,对于很多想要走微软阵营的初学者来说有时还分不清楚.NET Core和.NET Framework之间的区别,或者说不知道在什么情形下要使用.NET Core,什么时候要使用.NET Framewor。今天我们就来总结一下什么情形下要选择.NET Core,什么情形下要选择.NET Famework。


先来看一下.NET Core和.NET Framework之间的版本信息对比:

这两者共用许多相同的组件,你可在它们之间共享代码。 但两者之间存在根本的差异,可根据需要实现的目标进行选择。 

在以下情况,请使用.NET Core技术:
1.用户有跨平台需求。
2.你正在以微服务为目标。
3.你正在使用 Docker 容器。
4.需要高性能和可扩展的系统。
5.需按应用程序提供并行的 .NET 版本。


在以下情况,请使用 .NET Framework技术 :
1.应用当前使用的是.NET Framework技术(建议扩展而不是迁移)。
2.应用使用了非基于 .NET  Core技术的第三方库或 NuGet 包。
3.应用使用了.NET Core技术不支持的 的 .NET Framework 功能。
4.应用使用了不支持 .NET  Core的平台。

有如下应用场景需求请使用.NET Core:
1.跨平台需求
如果 Web 或服务应用程序需要在多个平台(例如 Windows、Linux 和 macOS)上运行,请使用 .NET Core。

.NET Core 作为开发工作站支持前面提到的操作系统。 Visual Studio 提供了适用于 Windows 和 macOS 的集成开发环境 (IDE)。 还可使用运行于 macOS、Linux 和 Windows 上的 Visual Studio Code。 Visual Studio Code 支持 .NET,包括 IntelliSense 和调试。 大多数第三方编辑器(如 Sublime、Emacs 和 VI)都可搭配 .NET 使用。 这些第三方编辑器可使用 Omnisharp 获取编辑器 IntelliSense。 也可不使用任何代码编辑器,直接使用适用于所有支持平台的 .NET CLI。

2.微服务体系结构
微服务体系结构允许跨服务边界组合使用技术。 通过这种技术组合,可逐步接受 .NET 作为能与其他微服务或服务搭配使用的新微服务。 例如,可组合使用微服务或使用 .NET Framework、Java、Ruby 或其他单片技术开发的服务。

可用的基础结构平台有很多。 Azure Service Fabric,设计用于大型和复杂微服务系统 。 Azure App Service,很适合用于无状态微服务。 基于 Docker 的微服务备选方案适合任何微服务方法,这部分内容将在容器部分进行说明。 所有这些平台都支持 .NET,是托管微服务的理想选择。

3.容器
容器通常与微服务体系结构结合使用。 还可使用容器将遵循任何体系结构模式的 Web 应用或服务容器化。 .NET Framework 可在 Windows 容器上使用。 但 .NET Core 的模块化和轻型性质使之成为容器的更佳选择。 在创建和部署容器时,使用 .NET Core时容器的映像大小要远小于使用 .NET Framework 时的大小。 因为它是跨平台的,所以可将服务器应用部署到 Linux Docker 容器。

Docker 容器可托管在自己的 Linux 或 Windows 基础结构中,或托管在 Azure Kubernetes 服务等云服务中。 Azure Kubernetes 服务可管理、协调和缩放云中基于容器的应用程序。

4.高性能和可扩展的系统
如果系统需要最佳的性能和可伸缩性,ASP.NET Core 是最佳的选择。 Windows Server 和 Linux 的高性能服务器运行时使 ASP.NET Core 成为 TechEmpower 基准上性能最佳的 Web 框架。

性能和可伸缩性对微服务体系结构尤为重要,微服务体系结构中可能正在运行数百个微服务。 借助 ASP.NET Core,系统运行的服务器/虚拟机 (VM) 数要低得多。 减少服务器/VM 后可节省基础结构和托管成本

5.按应用程序级别并行安装 .NET  Core版本
若要安装含不同 .NET  Core版本上的依赖项的应用程序,建议使用 NET Core。 该实现支持在同一计算机上并行安装不同版本的 .NET Core 运行时。 并行安装允许在同一服务器上使用多项服务,每项服务位于其相应的 .NET Core 版本上。 这还可在应用程序升级和 IT 运营时降低风险、节省成本。

.NET Framework 不支持并行安装。 它是一个 Windows 组件,一次只能有一个版本存在于计算机上。 .NET Framework 的每个版本均替换之前的版本。 如果安装面向 .NET Framework 更高版本的新应用,则可能会中断计算机上运行的现有应用,因为替换了之前的版本。

选择 .NET Framework 的情形
.NET  Core对新应用程序和应用程序模式特别有用。 但是在很多现有方案中依然会自然而然地选择 .NET Framework,并且对于所有服务器应用程序,.NET Framework 不会被 .NET 代替。

1.现有的 .NET Framework 应用程序
在大多数情况下,不需要将现有应用程序迁移到 .NET。 相反,若要扩展现有的应用程序(例如,在 ASP.NET Core 中写入新的 Web 服务),建议使用 .NET Core。

2.不可用于 .NET  Core的第三方库或 NuGet 包
通过 .NET Standard 可跨各种 .NET 实现(包括 .NET Core/5+)共享代码。 使用 .NET Standard 2.0,兼容性模式允许 .NET Standard 和 .NET Core项目引用 .NET Framework 库。仅在以下情况下需要使用 .NET Framework:库或 NuGet 包使用 .NET Standard 或 .NET Core 中不提供的技术。

3. .NET Framework 技术不可用于 .NET Core
某些 .NET Framework 技术在 .NET Core中不可用。 以下列表显示无法在 .NET 中找到的最常见技术:
ASP.NET Web Forms 应用程序:ASP.NET Web Forms 仅在 .NET Framework 中可用。 ASP.NET Core 不能用于 ASP.NET Web Forms。
ASP.NET Web 网页应用程序:ASP.NET 网页未包含在 ASP.NET Core 中。
工作流相关的服务:Windows Workflow Foundation (WF)、工作流服务(WCF + 单个服务中的 WF)和 WCF Data Services(以前称为“ADO.NET Data Services”)仅在 .NET Framework 上可用。

4.语言支持

.NET Core目前支持 Visual Basic 和 F#,但不是所有项目类型都支持。 
5.平台不支持 .NET Core
某些 Microsoft 或第三方平台不支持 .NET。 某些 Azure 服务提供尚不可用于 .NET 的 SDK。 在这种情况下,可使用等效的 REST API(而不是客户端 SDK)。


总结:

本文主要讲解了在什么情形下推荐使用.NET Core技术,什么情形下推荐继续使用旧的.NET Framework。简单点总结就是如果你是.NET的初学者,建议直接学习.NET Core ,如果你已是.NET 老兵,建议也尽可能的使用.NET Core 。总之不到万不得已就尽量不要再去用.NET Framework了,毕竟微软自己的开始停更了。

用户评论