首页 文章

为什么要使用完整的.NET Framework 和 ASP.NET Core?

提问于
浏览
33

使用 ASP.NET Core 1.0 版本,可以根据文档这里在.NET Core 或完整的.NET Framework 上运行。我试图理解为什么会选择 ASP.NET 核心完整.NET 框架的后一种选择?

我理解完整的.NET Framework 和.NET Core 之间的区别。但是,如果我想使用完整的.NET 框架,为什么不使用 ASP.NET 4.6?我认为这个想法是list 仍然有效,那么完整的.NET 框架 ASP.NET Core 的用例是什么?它上面的 ASP.NET 核心仍然提供给我没有.NET 核心?

5 回答

  • 29

    .NET Core 允许一系列的好处,如跨平台部署,模块化,部署到 Docker 容器的能力,性能等。没有.NET Core 我不相信该列表上的任何内容仍然有效

    如果您选择完整的.NET 框架而不是.NET Core,那么您没有的唯一好处就是跨平台。部署,模块化,docker,性能等所有其他好处仍然有效。

    我们实际上在完整的框架上运行了我们的 ASP.NET 核心 Web 应用程序,现在我们享受了将 Dependency Injection 作为一等公民的好处,内置了 NuGet,拥有精简的 HTTP 请求管道,这使我们的性能更好,开源(所以所有这些问题可以通过对 GitHub 的短暂访问来解决,模块化(仍然需要在近一年后才能找到我们无法根据自己的需求定制的东西),等等。我们知道我们不需要部署在除 Windows 之外的任何其他操作系统上,因此我们仍然可以获得完整框架的所有好处。

    来自 Tseng 的更新

    好吧,你仍然可以在 Linux 下定位完整的.NET Framework。那里你需要安装 mono 4.6. 有一些限制,因为并非所有类都以单声道实现,但大多数是和即将发生的情况(i.e.加密)你必须解决

    来自 atconway 的更新

    如果这是一个要求,.NET Core 不支持 VB.NET 时也值得注意。

  • 6

    但是,如果我想使用完整的.NET 框架,为什么不使用 ASP.NET 4.6?

    如果我使用 ASP.NET 4.6 而不是 ASP.NET Core 1,那么我将无法使用 ASP.NET Core MVC。该文档页面上的所有功能都不会提供给我!我将不得不构建一个 MVC5 应用程序。 Boooo!

    我试图理解为什么会选择 ASP.NET 核心完整.NET 框架的后一种选择?

    我假设另一种方式来问这个问题:“为什么你可以采取红色路径,当你可以采取棕色路径?”

    在此输入图像描述

    这样做的一个论点是部署。如果您有一堆现有的带有 IIS 的 Windows 服务器,那么您需要在每个服务器上安装其他软件并将其设置为运行 Core 应用程序。 IIS 只是成为您的.NET Core 应用程序的反向代理。

    但是,如果这些应用程序是在.Net Framework 上构建的,那么您就不必这样做了。您仍然可以使用 Web 部署(例如)将它们移动到服务器上。也许您还有其他一些您不想迁移的现有 IIS 配置设置。

    使用 ASP.NET Core 1.0 定位.Net Framework,您可以获得 ASP.NET Core MVC 中新功能的好处,而无需更改现有基础架构。

  • 5

    使用具有 Asp.Net 核心的完整.NET 框架的一个重要好处是成熟库和框架的可用性,这些库和框架主要是针对以前版本的.NET 开发的。

    但是,通过花时间和实现越来越多的库来定位.NET 核心并为.NET 核心本身开发更多功能,这种好处可能会逐渐消失。

  • 2

    必须利用像 OLE DB 这样永远不会在.NET Core System.Data 中实现的传统技术是另一个原因。

  • 0

    需要考虑的一件事是它可以是一个迁移路径。例如,假设您有一个想要迁移到.NET Core 的现有 ASP.NET 4.6 应用程序。您希望利用 TagHelper,依赖注入等 ASP.NET Core 功能,但您还没准备好或能够使用.NET Core 框架。因此,您开发了 ASP.NET Core 应用程序,仅针对.NET 完整框架。然后,你进行下一步和 multi-target,同时选择.NET 完整框架和.NET 核心框架。这使您可以灵活地使用完整框架轻松部署到 IIS,或者使用核心框架轻松部署到 cross-platform。从那里,您可以决定是否要删除完整框架。

相关问题