Difference between ASP.NET Core and ASP.NET MVC 5

Difference 1 -
Single aligned web stack for ASP.NET Core MVC and Web APIs.
A Web stack is the collection of software required for Web development.
ASP.NET MVC 5 will give us 'option' of choosing MVC or Web API or both while creating a web application.
ASP.NET Core MVC now has single aligned web stack for MVC and Web API.
Single stack for ASP.NET Core (MVC & Web APIs).


Difference 2 -
Project(Solution) Structure Changes
If you see ASP.NET Core MVC solution explorer on the right-hand side, there is no Web.config, Global.asax.
appsettings.json, custom configuration files are some files which do those work of missing files from ASP.NET MVC 5.


Difference 3 -
ASP.NET Core targets Full .NET and .NET Core
.NET Core is a general purpose development platform maintained by Microsoft and the .NET community on GitHub. It is cross-platform, supporting Windows, macOS, and Linux, and can be used in device, cloud, and embedded/IoT scenarios
Not only we can develop in Windows OS but also in Linux, Mac using Visual Studio Code or any other code editors like Vim, Atom, Sublime


Difference 4 -
ASP.NET Core apps don’t need IIS for hosting
The goal of ASP.NET Core is to be cross-platform using .NET Core. With this in mind,
Microsoft decided to host ASP.NET Core applications not only on IIS but they can be self-hosted or use Nginx web server on Linux.


Difference 5 -
wwwroot folder for static files
Static files like config.json, which are not in wwwroot will never be accessible, and there is no need to create special rules to block access to sensitive files.
These static files might be plain HTML, Javascript, CSS, images, library etc.
In addition to the security benefits, the wwwroot folder also simplifies common tasks like bundling and minification, which can now be more easily incorporated into a standard build process and automated.
The “wwwroot” folder name can be changed too.


Difference 6 -
New approach to Server side and client side dependency management of packages
Working in Visual Studio IDE and deploy ASP.NET Core applications either on Windows, Linux or Mac using .NET Core.
Its Server side management of dependencies.
The client-side has more different packages from the server side.
Client side will surely have jQuery, Bootstrap, grunt, any Javascript frameworks like AngularJS, Backbone etc, images, style files.


Difference 7 -
Server-side packages save space in ASP.NET Core
We have been using NuGet package manager to add a reference to assemblies, library, framework or any third party packages.
They would have been downloaded from NuGet which creates “Packages” folder in project structure.
So we need more disk space for storing packages even though they all are same.
ASP.NET Core came up with storing all the packages related to its development in Users folder and while creating ASP.NET Core applications, Visual Studio will reference them from Users folder.
This feature is called Runtime Store for .NET Core 2.


Difference 8 -
Inbuilt Dependency Injection (DI) support for ASP.NET Core