What is the difference between ASP.NET MVC 6 and ASP.NET Core 1.0 and the reason behind the core framework?

.Netasp.net Mvcasp.net Core-Mvc

.Net Problem Overview


I understand that ASP.NET Core is a modular framework which unites technologies like ASP.NET MVC and Web API into a single programming model.

But one of the features of ASP.NET MVC 6 was introducing the merging of MVC 6 and Web API together along with following features. Dependency injection is inbuilt and part of MVC.

  1. Side by side - deploy the runtime and framework with your application

  2. Everything packaged with NuGet, Including the .NET runtime itself.

  3. New JSON based project structure.

  4. No need to recompile for every change. Just hit save and refresh the browser.

  5. Compilation done with the new Roslyn real-time compiler.

So why there are 2 standalone ASP.NET frameworks? since core framework has been in existence, will MVC 6 not be used hereafter?

would be great if someone can clarify.

.Net Solutions


Solution 1 - .Net

MVC 6 was part of ASP.NET 5, but due to some major changes in the code base, they decided to change its name from ASP.NET 5 to ASP.NET Core.

You can read about here: http://www.hanselman.com/blog/ASPNET5IsDeadIntroducingASPNETCore10AndNETCore10.aspx

Solution 2 - .Net

The main difference between ASP.NET and ASP.NET Core are as described below...

  • Platform Independent Features ASP.NET Core provides hosting in multiple platform like Linux or Mac or Windows hosting (Cross platform).
  • Introduced new lighter version of assemblies with non dependent frameworks.
  • Ready for cross platform cloud hosting.
  • Frameworks are a complete rewrite (and still building)
  • Project default project structure got renewed with type scripts configurations.
  • Improved new security features and dependency inversions.

Please visit .NET Core and ASP.NET Core for more details

The main reason behind the core framework is dependency inversion. As its framework is completely rewritten in such a way that high level assemblies completely decoupled from low level supporting assemblies.

Solution 3 - .Net

As I can see your question has two part. First part is more technical which was well explained on other answers I think, so let me try to explain second part which is reason behind new .net core framework.

Most of web application runs in Linux and most of website is build with open source languages such as php, python, ruby. Also you will notice some most popular CMS application like WordPress built with php which is more preferable to host in Linux obviously. In other hand Microsoft is well known for commercial paid software and closed source ofcourse. In technology world Microsoft was missing trust from open source lovers due to its own closed source type of design. So finally they also wants to take market share from open source community. And there was no other way then rebuild .net core under open source type of design. Also beside all of these Microsoft trying to show love for open source community to build trust as a part of that they has acquired github which is most popular tool for open source developer community. So basically Microsoft trying extend its business being involved in open source software world and .net core is most important to attract developers. This is the key reason I think behind the core framework.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionV.SriramView Question on Stackoverflow
Solution 1 - .NetgnllucenaView Answer on Stackoverflow
Solution 2 - .NetRahul UttarkarView Answer on Stackoverflow
Solution 3 - .NetLiakat HossainView Answer on Stackoverflow