As web sites became web applications, developers began looking to use ideas and techniques drawn from traditional software development. These included architectural patterns like Model-View-Controller (MVC) and Pipeline that simply were not possible with the server page model. The result was the development of a host of web frameworks across multiple programming languages, including:
- Ruby on Rails , which uses the Ruby programming language and adopts a MVC architecture
- Laravel , which uses the PHP programming language and adopts a MVC architecture
- Django , which uses the Python programming language and adopts a MVC architecture
- Revel , which uses the Go programming language and adopts a Pipeline architecture
- Cowboy , which uses the erlang programming language and adopts a Pipeline architecture
- Phoenix , which uses the elixir programming language, and adopts a Pipeline architecture
This is only a sampling of the many frameworks and languages used in the modern web. Microsoft adapted to the new approach by creating their own frameworks within the ASP.NET family:
- ASP.NET MVC uses C# (or Visual Basic) for a language and adopts a MVC architecture
- ASP.NET Razor Pages , which also uses C# (or Visual Basic) for its language, and adopts a Pipeline architecture
- ASP.NET API is a web framework focused on creating RESTful web APIs (i.e. a web application that serves data instead of HTML)
IIS and ASP.NET Core
While ASP.NET applications are traditionally hosted on IIS running on the Windows Server operating system, the introduction of .NET Core made it possible to run .NET programs on Linux machines. As Linux operating systems are typically free and dominate the web server market (W3Cook1 reports 98.1% of web servers worldwide run on a Linux OS).
Microsoft has accordingly migrated its ASP.NET family to a new implementation can run on .NET Core or IIS: ASP.NET Core . When you build a ASP.NET Core application, you can choose your deployment target: IIS, .NET Core, or even Microsoft’s cloud service, Azure. The same application can run on any of these platforms.