What is ASP.NET?
ASP.NET is an open source web framework for building web apps on the .NET (dotNET) framework. It is created by Microsoft and version 1.0 was released in 2002 to allow developers to build dynamic web apps, services and sites. The framework is built to work with the standard HTTP protocol, which is the standard protocol used across all web applications.
ASP.NET is the successor to the ASP (Active Server Pages) technology and was a significant upgrade in terms of flexibility and power. It is an extension of the .NET platform with additional tools and libraries specifically for building things on the web, including web apps and web sites.
The newest version of ASP.NET is the cross-platform version called ASP.NET Core, which was released in 2016. ASP.NET is still supported and updated, but moving forward the focus for Microsoft is to develop the new cross platform version.
- ASP dotNET
- Active Server Pages
- Network Enabled Technologies
- ASP.NET Core
The architecture of the ASP .NET framework consists of a set of key components that are used in development.
The programming language used for the ASP.NET framework is VB.NET (Visual Basic) or C#. Umbraco CMS is written in C#.
The ASP.NET includes the base libraries from the .NET framework, but also includes libraries for common web patterns. One such library is Model View Controller (MVC), which enables you to use the MVC design pattern for designing web apps and sites. The MVC pattern lets you build a web application as a composition of three roles - a business layer, a display layer and an input control.
3. Common Language Runtime
The Common Language Runtime (CLR) is the platform where your .NET programs are executed. It is used for performing key activities such as activating objects, performing security checks, laying them out in memory, executing and handling garbage collection.
On top of the three key components in the framework, it also extends .NET with other tools to make life easier for a web developer. One of these is the templating syntax used for web sites called Razor. This templating syntax is heavily used in building dynamic web pages in C# and enables working with master pages and templates to create web pages with dynamic values and content.
When working with the .NET it is possible to use Microsoft Visual Studio as an integrated development environment (IDE). Visual Studio is an IDE by Microsoft used to develop web applications and consists of a source code editor, debugger, compiler and designer, which are all accessed through one single interface.
ASP.NET Core: The future of ASP.NET
In 2016 the newest version of ASP.NET was released - ASP.NET Core. The main difference is that ASP.NET Core is cross platform which means it can run on macOS, Linux and Docker as well as of course Windows.
While ASP.NET is still supported and updated by Microsoft, most of their focus going forward will be to develop the new .NET Core platform.
Besides being cross platform, the new framework has taken ASP.NET MVC, ASP.NET Web API and ASP.NET Web Pages and merged them into a unified MVC 6. This gives developers higher performance and more flexibility, while still getting a stable platform that keeps your apps and websites running smoothly.
Umbraco uses the ASP.NET Framework
Umbraco is built on the .NET Framework using ASP.NET and is primarily written in C#. Data is stored in a relational database (usually Microsoft SQL server) and it works on Microsoft IIS (Internet Information Server).
Requirements for Umbraco CMS:
- Microsoft ASP.NET 4.7.2
- Microsoft SQL Express 2012+
- Microsoft IIS or IIS Express
- Microsoft Windows 7+ or Microsoft Windows Server 2012+
It is also recommended to use Microsoft Visual Studio 2017 (15.9.7+) or Microsoft Visual Studio Code with the IIS Express plugin. If you are looking to get started with Umbraco CMS we recommend you look through our guide on getting started.
Umbraco is moving to .NET Core
The decision to move Umbraco from .NET to .NET Core has already been made and planning has officially started (see the Umbraco roadmap under "Later"). The initial project structure is actively being discussed and you can find more discussion on it on Github, where it has been given the name of Project UniCore.