为什么要将完整的.NET Framework与ASP.NET Core一起使用?

时间:2016-10-05 03:39:46

标签: asp.net-core .net-core

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

我理解完整的.NET Framework和.NET Core之间的区别。但是,如果我想使用完整的.NET Framework,为什么不使用ASP.NET 4.6呢?我认为这个想法是在.NET Core上使用ASP.NET Core的1-2个冲击,允许一系列的好处,如跨平台部署,模块化,部署到Docker容器的能力,性能等。没有.NET Core我不喜欢不相信该列表上的任何内容仍然有效,那么完整的.NET框架+ ASP.NET Core的用例是什么?在没有.NET Core的情况下,ASP.NET Core自身还能提供什么?

5 个答案:

答案 0 :(得分:29)

  

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

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

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

从Tseng更新

  

嗯,你仍然可以在Linux下以完整的.NET Framework为目标。那里你需要安装mono 4.6。由于并非所有类都以单声道实现,因此存在一些限制,但是大多数类都是在角落的情况下(即加密),你必须解决这个问题

从atconway更新

  

如果需要,.NET Core不支持VB.NET也值得注意。

答案 1 :(得分:6)

  

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

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

  

我正在尝试理解为什么选择ASP.NET Core +完整的.NET Framework的后一种选择?

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

enter image description here

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

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

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

答案 2 :(得分:5)

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

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

答案 3 :(得分:2)

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

答案 4 :(得分:0)

要考虑的一件事是它可以是一个迁移路径。例如,假设您有一个要迁移到.NET Core的现有ASP.NET 4.6应用程序。您希望利用TagHelpers,依赖注入等ASP.NET核心功能,但您尚未准备好或无法使用.NET Core框架。因此,您开发ASP.NET Core应用程序,仅针对.NET完整框架。然后,您将进行下一步和多目标,同时使用.NET完整框架和.NET Core框架。这使您可以灵活地使用完整框架或与核心框架的跨平台轻松部署到IIS。从那里,您可以决定是否要删除完整的框架。