ASP.NET MVC 6和ASP.NET Core 1.0有什么区别,以及核心框架背后的原因是什么?

62

我知道ASP.NET Core是一个模块化的框架,它将ASP.NET MVC和Web API等技术集成到一个单一的编程模型中。

但是ASP.NET MVC 6的一个特点是将MVC 6和Web API集成在一起,并引入了以下功能。

依赖注入已内置并作为MVC的一部分。

1)可以与应用程序一起部署运行时和框架

2)所有内容都打包在NuGet中,包括.NET运行时本身。

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

4)不需要为每个更改重新编译。只需保存并刷新浏览器即可。

5)使用新的Roslyn实时编译器进行编译。

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

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


8
MVC 6 是 ASP.NET Core 的一部分,你可以说它们是同一个东西。 - Alexan
看起来他们已经从头开始重写了很多MVC 6,并作为ASP.NET Core 1.0的一部分进行了开发。@Alex - V.Sriram
4
是的,它被称为ASP.NET 5和MVC 6,现在它只是ASP.NET Core和MVC。 - Alexan
1
很遗憾,project.json文件将在下一个版本中被.csproj替换。https://blogs.msdn.microsoft.com/dotnet/2016/05/23/changes-to-project-json/ - Dmitry S.
1
维基百科上的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版本。https://en.wikipedia.org/wiki/ASP.NET_MVC#Release_history - Pansoul
3个回答

55

12

ASP.NETASP.NET Core 的主要区别如下:

  • 平台无关的特性: ASP.NET Core 可以在多个平台上进行托管,如 Linux、Mac 或 Windows hosting(跨平台)。
  • 引入了新的轻量级程序集,不依赖于其他框架。
  • 支持跨平台云托管。
  • 框架完全重写(仍在构建中)。
  • 默认项目结构已更新,包含了 TypeScripts 的配置文件。
  • 改进了新的安全功能和依赖项反转。

请访问 .NET CoreASP.NET Core 获取更多详细信息。

核心框架背后的主要原因是依赖项反转。因为其框架被完全重新编写,所以高级程序集与低级支持程序集完全解耦。


2

我看到你的问题有两个部分。第一部分是技术性更强的部分,其他答案已经很好地解释了,所以让我尝试解释第二部分,即新的.NET Core框架背后的原因。

大多数Web应用程序在Linux上运行,大多数网站都使用开源语言构建,如php、python、ruby。此外,您会注意到一些最受欢迎的CMS应用程序,如WordPress,是用php构建的,显然更适合在Linux上托管。另一方面,微软以商业付费软件和闭源而闻名。在技术世界中,由于其自身的闭源设计类型,微软一直缺乏来自开源爱好者的信任。因此,他们也想从开源社区中获得市场份额。没有其他办法,只能在开源设计下重建.NET Core。此外,除了所有这些之外,微软还试图表现出对开源社区的热爱,以建立信任。作为其中的一部分,他们收购了GitHub,这是最受欢迎的开源开发人员社区工具。因此,微软正在试图扩展其业务,参与开源软件世界,而.NET Core是吸引开发人员的最重要的关键。这就是我认为背后的关键原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接