ASP.NET framework is built on top of .net framework which was released more than 15 years back.The shortcomings of asp.net webforms such as limited control over the generated html and testability are overcome in asp.net MVC framework
ASP.NET MVC is built on the asp.net framework,based on System.Web.dll assembly.This has the implication of asp.net mvc being totally dependent upon this dll and so any change in this could break the entire application.So a modular approach is definitely required to resolve this.
Another restriction of ASP.NET is that it can run only on Windows OS.A cross platform solution is required to resolve this issue.
ASP.NET Core addresses all of these issues:
- It is not dependent on any single dll rather it uses single nugets to implement its functionality
- It is cross platform and can run on any OS such as Linux,Mac etc.
- Also it is open source
You can build asp.net core applications on top of either .net core framework or .net framework.You should decide this based on your requirement.If you have an existing asp.net application then you can move it to asp.net core easily by target.
Following are the main things which happen when you develop ASP.NET Core application
- You write a.NET Core console application then you start a Web server this web server provides access to your application logic
- When you create ASP.NET core application you can use a cross-platform web server called Kestrel.
- Browser sends a request to a reverse proxy server such as IIS which forwards the request to Ketrel.Then the request passes through the pipeline of middleware components.