58
votes

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.

3
MVC 6 is part of ASP.NET Core, you can say it's the sameAlexan
so looks like they have rewritten a lot of mvc 6 from ground up and developed as part of ASP.NET core 1.0 @AlexV.Sriram
yes, it's called ASP.NET 5 and MVC 6, now it's just ASP.NET Core and MVCAlexan
Unfortunately project.json file is getting replaced with the .csproj in the next release. blogs.msdn.microsoft.com/dotnet/2016/05/23/…Dmitry S.
Wikipedia ASP.NET MVC release history article clearly show that it is simply a name change since you have ASP.NET MVC 6.0.0-rc1 version is followed by ASP.NET Core MVC 1.0.0-rc2 to finally have ASP.NET Core MVC 1.0.0 as released version en.wikipedia.org/wiki/ASP.NET_MVC#Release_historyPansoul

3 Answers

53
votes

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

11
votes

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.

1
votes

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.