ASP.NET MVC 6和ASP.NET Core 1.0之间的区别是什么?核心框架背后的原因是什么?

ASP.NET MVC 6和ASP.NET Core 1.0之间的区别是什么?核心框架背后的原因是什么?,.net,asp.net-mvc,asp.net-core-mvc,.net,Asp.net Mvc,Asp.net Core Mvc,我知道ASP.NETCore是一个模块化框架,它将ASP.NETMVC和WebAPI等技术结合到一个单一的编程模型中 但是ASP.NETMVC6的一个特性是引入了MVC6和WebAPI的合并以及以下特性。 依赖注入是内置的,是MVC的一部分 1) 并排-将运行时和框架与应用程序一起部署 2) 使用NuGet打包的所有内容,包括.NET运行时本身 3) 新的基于JSON的项目结构 4) 无需为每次更改重新编译。只需点击保存并刷新浏览器 5) 使用新的Roslyn实时编译器完成编译 那么为什么有两个

我知道ASP.NETCore是一个模块化框架,它将ASP.NETMVC和WebAPI等技术结合到一个单一的编程模型中

但是ASP.NETMVC6的一个特性是引入了MVC6和WebAPI的合并以及以下特性。 依赖注入是内置的,是MVC的一部分

1) 并排-将运行时和框架与应用程序一起部署

2) 使用NuGet打包的所有内容,包括.NET运行时本身

3) 新的基于JSON的项目结构

4) 无需为每次更改重新编译。只需点击保存并刷新浏览器

5) 使用新的Roslyn实时编译器完成编译

那么为什么有两个独立的ASP.NET框架呢?既然核心框架已经存在,MVC6以后会不会不再使用


如果有人能澄清,那就太好了。

MVC 6是ASP.NET 5的一部分,但由于代码库中的一些重大更改,他们决定将其名称从ASP.NET 5更改为ASP.NET Core


您可以在这里阅读:

ASP.NET和ASP.NET核心之间的主要区别如下所述

  • 独立于平台的功能
    ASP.NET Core
    提供多平台托管,如Linux或Mac或Windows托管(跨平台)
  • 引入了具有非依赖框架的程序集的新版本
  • 准备好跨平台云托管
  • 框架是一个完全重写(仍在构建中)
  • 已使用类型脚本配置更新项目默认项目结构
  • 改进了新的安全功能和依赖项反转
有关更多详细信息,请访问和


核心框架背后的主要原因是依赖倒置。因为它的框架被完全重写,使得高级组件与低级支持组件完全解耦

我可以看出你的问题有两个部分。第一部分是更技术性的,我认为其他答案已经很好地解释了这一点,所以让我试着解释第二部分,这是新的.net核心框架背后的原因


大多数web应用程序在Linux中运行,大多数网站是用开放源代码语言(如php、python、ruby)构建的。此外,您还会注意到一些最流行的CMS应用程序,比如用php构建的WordPress,显然比在Linux中托管更可取。另一方面,微软以商业付费软件和开源软件而闻名。在技术领域,由于其自身的封闭源代码设计类型,微软失去了开源爱好者的信任。所以最后,他们还想从开源社区获得市场份额。在开源设计模式下,再也没有其他方法重建.net内核了。除此之外,微软还试图表现出对开源社区的热爱,以建立信任,作为其中的一部分,他们收购了github,这是开源开发者社区最流行的工具。所以,基本上,微软试图将其业务扩展到开源软件领域,而.NETCore对于吸引开发者来说是最重要的。这是我认为核心框架背后的关键原因。

MVC6是ASP.NET core的一部分,你可以说是相同的,看起来他们从头开始重写了很多MVC6,并作为ASP.NET core 1.0@Alexyes的一部分开发,它被称为ASP.NET 5和MVC6,现在它只是ASP.NET核心,MVProject.json文件在下一个版本中将被.csproj替换。Wikipedia ASP.NET MVC发布历史文章清楚地表明,这只是一个名称更改,因为ASP.NET MVC 6.0.0-rc1版本之后是ASP.NET Core MVC 1.0.0-rc2,最终将ASP.NET Core MVC 1.0.0作为发布版本