# dotnettutorial-asp-dot-net-mvc

This is a learning repository for learning ASP.NET MVC from [dotnettutorials](https://dotnettutorials.net/lesson/asp-dot-net-mvc-application/

## ASP.NET MVC vs ASP.NET Core MVC

What is ASP.NET MVC?

> The ASP.NET MVC is an open-source framework built on top of the Microsoft .NET Framework to develop the web application that enables a clean separation of code. ASP.NET MVC framework is the most customizable and extensible platform shipped by Microsoft. In other words, we can say that the ASP.NET MVC is a web application development framework from Microsoft that is based on MVC (Model-View-Controller) architectural design pattern.

What is .NET Core?

> .NET Core is a new version of .NET Framework, which is a free, open-source, general-purpose development platform maintained by Microsoft. It is a cross-platform framework that runs on Windows, Linux, and macOS. .NET Core framework can be used to build different types of applications today such as console, desktop, web, mobile, cloud, IoT, machine learning, Microservices, games, etc…
> .NET Core is written from scratch to make it a modular, lightweight, fast, and cross-platform framework, it includes the core features that are required to run a basic .NET Core app. Other features are provided as NuGet Packages, which you can add it in your application as needed. In this way, the .NET Core application speed up the performance, reduce the memory footprint and becomes easy to maintain.

Why .NET Core?
> There are some limitations to the .NET Framework. For example, it only runs on the Windows OS Platform. Also, you need to use different .NET APIs for different windows devices such as Windows Desktop, Windows Store, Windows Phone, and Web Applications. In addition to this, the .NET Framework is a machine-wide framework. Any changes made to it affect all applications taking a dependency on it.
> Today, it’s common to have an application that runs across devices; a backend on the web server, admin front-end on windows desktop, web, and mobile apps for consumers. So, there is a need for a single framework that works everywhere. So, considering this, Microsoft created .NET Core. The main objective of .NET Core is to make .NET Framework open-source, cross-platform compatible that can be used in a wide variety of verticals, from the data center to touched-based devices.

Overall, **ASP.NET MVC** is built using **.NET Framework**, **ASP.NET Core MVC** is built using **.NET Core**.

.NET Core is the new framework (rework) after .NET Framework. Understanding ASP.NET MVC is still benefitial for us to work on ASP.NET Core MVC.

To learn how to build MVC using ASP.NET Core, please refer to [ASP.NET Core Tutorial](https://dotnettutorials.net/course/asp-net-core-tutorials/)