# ASP.NET

ASP.NET (spreek uit: A.S.P. dot net) is de opvolger van ASP en onderdeel van het .NET-framework van Microsoft. ASP staat voor Active Server Pages en is van oorsprong een Microsoft-technologie.
ASP.NET is een manier om op een webserver webpagina's aan te maken met behulp van programmacode. Hiermee kunnen vaste HTML-codes gecombineerd worden met variabele inhoud die door een programma wordt geproduceerd.
Hierdoor kunnen websites met een dynamisch karakter worden gemaakt. Hiermee worden geen (interactieve) animaties bedoeld, maar websites die aan de hand van gebruikeracties verschillende gegevens weergeven. Met ASP.NET is het mogelijk een website te maken, die duizenden mogelijke resultaten kan produceren, afhankelijk van wat de bezoeker vraagt. Bovendien kunnen duizenden gebruikers (tegelijkertijd) gebruikmaken van hetzelfde programma.

## Toepassingen

Typische toepassingen van ASP.NET zijn (zoals van de meeste serversidescripts):
* Verwerken van formuliergegevens (pagina's die door gebruikers ingevuld werden).
* Toegang tot databases via het internet
* e-commerce: gebruikers kunnen producten opzoeken en bestellen
* werknemers kunnen via het internet gegevens invoeren in de bedrijfsdatabank
* Opzetten van een discussieforum, waar bezoekers van mening kunnen wisselen
* Opzetten van een prikbord, waar bezoekers boodschappen kunnen "opprikken"
* Versturen van e-mail.
* Beheren van cookies.
* Bewaren van data als tussen verschillende pagina's wordt "gehopt".
* Dynamisch presenteren van data uit tekstbestanden.
* Polls of enquêtes (bezoekers kunnen een keuze maken tussen een aantal meningen)
* Aanbieden van informatie in de taal van de bezoeker
* Doorzoeken van websites
* Aanbieden van webservices, dit zijn diensten die door andere websites kunnen opgeroepen worden. Je kan ook webservices van anderen gebruiken op jouw site.

## Kenmerken
### Pagina's

Een ASP.NET-applicatie bestaat vaak uit pagina's om webpagina's te tonen. Een ASP.NET-pagina kan uit meerdere bestanden bestaan waardoor de opmaak van een pagina gescheiden kan worden van de code. Dit wordt code behind, of voor versie 2.0 code beside genoemd. Een ASP.NET-pagina kan naast tekst ook controls bevatten.

### Controls

ASP.NET maakt uitgebreid gebruik van zogenaamde controls. Paginaonderdelen zoals labels, knoppen, keuzelijsten en tekstvakken zijn voorbeelden van controls. De ontwerper stelt een pagina samen door de juiste controls toe te voegen, en van elke control de eigenschappen in te stellen.
Controls bevatten de nodige programmacode om zelfstandig de juiste paginacode (in HTML-formaat) te produceren.
Verder kunnen controls ook reageren op acties van de gebruiker (events). Als een gebruiker bijvoorbeeld op een knop klikt, kan er code uitgevoerd worden om de juiste acties te ondernemen.
ASP.NET bevat een mechanisme ViewState waarmee een control zijn kenmerken, zoals de tekst die een gebruiker invult, kan onthouden.

### Usercontrols

Een apart soort control is de User Control. Deze kan net als een paginaopmaak en andere controls bevatten. Ook kan het een apart codebestand bevatten. Met behulp van dit control kunnen stukken opmaak met functionaliteit hergebruikt worden.

## Voordelen van ASP.NET tegenover ASP

* De code wordt gecompileerd in plaats van geïnterpreteerd, waardoor de uitvoering sneller is
* Door middel van controls wordt code meer herbruikbaar
* Voordeel van meer objectgeoriënteerd programmeren
* Er is nu een grote gelijkenis tussen het maken van webtoepassingen en Windows-toepassingen, waardoor de overgang van het ene naar het andere gemakkelijker wordt
* Een uitgebreide verzameling van controls maakt het mogelijk om dikwijls snel een toepassing te bouwen, en ook achteraf snel aan te passen.
* Laat toe meerdere talen te gebruiken zoals VB.NET en C#, terwijl ASP alleen werkte met VBScript/JScript

## Geschiedenis

Oorspronkelijk werd ASP.NET door Microsoft ASP+ (Active Server Pages Plus) genoemd.
| Datum | Versie | Opmerkingen | Vernieuwingen |
| 16 januari 2002 | 1.0 | Eerste versie |
| 24 april 2003 | 1.1 | verscheen samen met Windows Server 2003 en Visual Studio .NET 2003 | Mobile controls |
| 7 november 2005 | 2.0 | vroegere codenaam Whidbey, verscheen samen met Visual Studio 2005 en SQL Server 2005 | Nieuwe datacontrols (GridView, FormView, DetailsView) Navigatiecontrols Masterpagina's Logincontrols Thema's Skins Webparts Personalization services Volledige voor-compilatie (website bestaat dan enkel uit dll's) Nieuwe lokalisatietechniek Ondersteuning voor 64-bit processors |
| eind 2006 | 3.0 | Daarvoor bekend als WinFX verscheen samen met Windows Vista | Windows Presentation Foundation (WPF) Windows Communication Foundation (WCF) Windows Workflow Foundation (WF) Windows CardSpace |
| 19 november 2007 | 3.5 | vroeger codenaam Orcas, verscheen samen met Visual Studio 2008 | nieuwe ListView- en Pager-controls ondersteuning voor LINQ ondersteuning voor geneste master-pagina's |
| 12 april 2010 | 4.0 | verscheen samen met Visual Studio 2010 | Nette Web.config Client ID mode URL routing/rewriting voor Web Forms MVC 2 framework |
| 15 augustus 2012 | 4.5 | verscheen samen met Visual Studio 2012 | |
| 20 juli 2015 | 4.6 | verscheen samen met Visual Studio 2015 | |

## Ontwikkelsoftware

ASP.NET kan in principe met een gewone teksteditor geschreven worden, maar er zijn verschillende programma's beschikbaar die ondersteuning bieden bij ontwikkelen van ASP.NET-applicaties met bijvoorbeeld syntaxiskleuring en automatische aanvulling:
* Visual Studio .NET
* Visual Web Developer Express Edition (gratis)
* Microsoft Expression Blend
* ASP.NET Web Matrix (alleen ASP.NET 1.x)
* Macromedia Dreamweaver MX 2004
* Macromedia Dreamweaver 8
* Adobe Dreamweaver CS3
* Macromedia HomeSite 5.5 (voor ASP-tags)
* Microsoft SharePoint Designer 12
* Delphi 2006
* Borland C# Builder
* SharpDevelop (gratis en open source)
* MonoDevelop (gratis en open source)
* HTML-Kit (gratis en open source)

## Alternatieven

ASP.NET concurreert met andere technologieën, zoals ASP, PHP, CGI, ColdFusion en JSP/J2EE.
Hoewel de ASP.NET-module zelf gratis gedownload en geïnstalleerd mag worden (als onderdeel van het zogenaamde dotNET-framework), kan een publieke toepassing alleen draaien op Windows-besturingssystemen met IIS vanaf versie 5 (Windows 2000/XP Pro/2003/Vista/2008/7/2008R2).
Er zijn wel alternatieve open source-implementaties van ASP.NET die kunnen geïnstalleerd worden op Linux- en FreeBSD-servers: Mono en dotGNU. Mono wordt gesponsord door Novell. Deze implementaties lopen 1 à 2 jaar achter ten opzichte van het native ASP.NET van Microsoft.