Programmeren in ASP.NET/Inleiding

Uit Wikibooks

Programmeren in ASP.NET

  1. Wat is ASP.NET?
  2. Wat heb ik nodig voor ASP.NET?
  3. Een ASP.NET-server installeren
  4. Je eerste ASP.NET-pagina
  5. HTML-controls
  6. Foutzoeken
  7. Web-server-controls
  8. Webformulieren
  9. Veelgebruikte objecten
  10. Validering
  11. Master-pagina's
  12. Navigatie
  13. Gegevenstoegang
  14. Werken met databanken
  15. Databankgegevens wijzigen
  16. Werken met datacontrols
  17. GridView
  18. FormView en DetailsView
  19. User-controls
  20. Custom controls
  21. AJAX
  22. Viewstate
  23. Configuratiebestanden
  24. Webservices
  25. Beveiliging
  26. Personalisatie en profielen
  27. Thema's en skins
  28. WebParts
  29. Globalisering
  30. Caching
  31. Mail vanuit ASP.NET
  32. Reguliere expressies
  33. Server-side afbeeldingen
  34. Mobiele toepassingen
  35. Meer informatie
  36. Appendix: foutmeldingen

ASP staat voor Active Server Pages en is van oorsprong een Microsoft-technologie. ASP.NET (spreek uit: ASP dot NET) is de opvolger van ASP en onderdeel van het .NET (dot NET) Framework van Microsoft.

ASP.NET is een manier om op een webserver-pagina's aan te maken met behulp van programma-code. Interessant hierbij is dat je vaste HTML-code kunt combineren met variabele inhoud die door je programma geproduceerd wordt.

Hierdoor kunnen met ASP.NET websites gemaakt worden met een dynamisch karakter. We bedoelen hiermee niet (interactieve) animaties, maar websites die aan de hand van acties van de gebruiker verschillende gegevens weergeven. Met enkele pagina's kun je een website maken, die duizenden mogelijke resultaten kan produceren, afhankelijk van wat de bezoeker vraagt.

Bovendien kun je duizenden gebruikers laten gebruik maken van hetzelfde programma, waardoor onbegrensde mogelijkheden ontstaan.

Toepassingen[bewerken]

Typische toepassingen van ASP.NET zijn:

  • Verwerken van formuliergegevens (pagina's die door gebruikers ingevuld werden).
  • Toegang tot databanken 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 kunt ook webservices van anderen gebruiken op jouw site.

Geschiedenis[bewerken]

De tabel hieronder geeft een lijst van de verschillende versies van het .NET-framework (en dus van ASP.NET).

Datum Versie Opmerkingen
16/1/2002 1.0
24/4/2003 1.1 Verscheen samen met Windows 2003 Server
7/11/2005 2.0 Codenaam Whidbey. Verscheen samen met Visual Studio 2005 en SQL Server 2005
6/11/2006 3.0 Vooral gebruikt voor Windows Vista, voor ASP.NET zijn er geen nieuwigheden.
19/11/2007 3.5 Verscheen samen met Visual Studio 2008, bevat ook ASP.NET AJAX
12/04/2010 4.0 Verscheen samen met Visual Studio 2010, bevat ook dynamics

In dit boek wordt versie 2.0 gebruikt.

Wat moet je al kennen?[bewerken]

Hoe werkt het?[bewerken]

Zoals een 'gewone' website uit HTML-bestanden bestaat, bestaat een ASP.NET-website (of ASP.NET -applicatie) uit ASP.NET-pagina's. Een ASP.NET-pagina lijkt op HTML, maar bevat daarnaast ook scripts die op de server worden uitgevoerd voordat het resultaat naar de browser gestuurd wordt. Met die scripts kunnen bijvoorbeeld resultaten uit een database worden weergegeven.

Als een browser een HTML-bestand opvraagt, wordt de inhoud hiervan onveranderd naar de browser gestuurd. Bij ASP.NET is dat anders, daar gebeurt het volgende:

  • een browser vraagt een ASP.NET-bestand op;
  • de webserver roept ASP.NET aan;
  • ASP.NET leest het ASP.NET-bestand in;
  • ASP.NET voert de (server-)scripts in het bestand uit;
  • ASP.NET maakt uiteindelijk een pagina aan die nog alleen uit HTML bestaat.
  • Het resultaat wordt als standaard HTML naar de browser gestuurd.

De gebruiker krijgt dus niet de originele pagina, maar een nieuwe pagina, die op het moment zelf werd gemaakt.

Omdat ASP.NET als gewoon HTML-bestand naar de browser wordt gestuurd, maakt het niet uit met welke browser je het bekijkt. Dit betekent ook dat de programma-(script)-code die je schrijft veilig is, ze wordt namelijk niet meegestuurd naar de browser.

Vergelijking met andere serverscripts[bewerken]

ASP.NET is niet de enige serverscripttaal. Er zijn meerdere scripttalen beschikbaar, afhankelijk van de fabrikant en van het besturingssysteem van de server.

Deze tabel toont de meest voorkomende:

  ASP ASP.NET PHP Coldfusion JSP/J2EE CGI
Naam Active Server Pages Active Server Pages Personal Home Pages/PHP Hypertext Processor Coldfusion Java Server Pages/Java 2 Platform, Enterprise Edition Common Gateway Interface
Ontwikkeld door Microsoft Microsoft open source Allaire, later Adobe Sun/IBM NCSA
Gebruikte talen VB JScript VB.NET, C#, C++, JScript, J# en andere PHP CFML Java C, Perl
Standaard besturingssysteem Windows 95-2008 Windows 2000-2008 Linux Windows Unix Unix
Ook beschikbaar op Linux Linux Windows, Macintosh en Mac OS X Windows, Linux en Mac OS X Windows ?
Web Server IIS of PWS IIS Apache, IIS IIS, ColdFusion Server Tomcat Apache
Server controls nee ja nee nee ja nee
Valideringscontrols nee ja nee nee ja nee
Snelheid laag hoog hoog zeer hoog hoog zeer hoog
Hardware vereisten medium hoog laag Laag ? laag
Prijs gratis, maar vereist Windows gratis, maar vereist Windows gratis Zeer duur gratis tot duur duur
Open Source nee nee ja nee ja en nee nee
Debugging beperkt goed extra aan te kopen Zeer goed goed goed
Gemakkelijk te leren (na basistalen) ja nee ja nee nee nee
Bestandsextensie asp aspx php, phtml, php5 cfm jsp prl, perl, cgi, geen

Wat zijn ASP.NET-bestanden?[bewerken]

ASP.NET-bestanden zijn tekstbestanden die naast tekst ook HTML-codes en specifieke commando's kunnen bevatten. De extensie van het bestand moet aspx zijn. Anders wordt het bestand niet door de ASP.NET-engine verwerkt.

ASP.NET-bestanden werken enkel indien op de webserver de ASP.NET-software werd geïnstalleerd.

Wat heb je nodig?[bewerken]

Om ASP.NET-pagina's te maken heb je nodig:

  1. een programma om pagina's te schrijven
  2. een webserver die ASP.NET ondersteunt, om je pagina's uit te testen

Om ASP.NET-pagina's op het internet te plaatsen, heb je een websiteprovider nodig die ASP.NET ondersteunt.

Waarmee kan ik ASP.NET-pagina's schrijven?[bewerken]

ASP-pagina's zijn tekstbestanden. Je zou ze dus met Notepad/Kladblok kunnen maken. Er zijn echter grafische programma's die daar handiger voor zijn, bijvoorbeeld Web Matrix (alleen ASP.NET 1.x), Microsoft Visual Web Developer 2008 Express (gratis), Borland C# Builder, Adobe CS Dreamweaver en Expression Web van Microsoft. Binnen Visual Web Developer 2008 kan je kiezen om gebruik te maken van VB scripts of C++. Microsoft heeft ook het gratis Visual Basic 2008 Express (gratis) als aanvulling ter beschikking.

ASP.NET-webserver[bewerken]

ASP.NET werkt op een webserver. Standaard is dit de Internet Information Server (IIS) van Microsoft, die werkt op Windows NT 4.0 Server of Windows 2000/2003 Server of Windows 2000/XP Professional. Je kunt ASP.NET niet installeren op Windows 95/98/Me. Opvallend is verder, dat ASP.NET binnen Windows ook als webserver kan werken, waardoor pagina's lokaal op de PC getest kunnen worden, zonder gebruik te maken van IIS. Voorheen kon dat alleen als de pagina's stonden in (lokale schijf, bv C):\inetpub\wwwroot\, maar met ASP3.NET is een willekeurige lokatie mogelijk. ASP3.NET maakt daarvoor een "poort open", bv http://localhost:3042, zodat een pagina in de browser kan worden bekeken via (bv) http://localhost:3042/default.aspx. Vanuit een programma zoals Microsoft Visual Web Developer 2008 Express hoeft men dan alleen op Ctrl-F5 te drukken om dit mogelijk te maken.

IIS wordt gratis bijgeleverd bij Windows XP (alleen Professional!), Windows 2000 en Windows 2003. Voor Windows NT is IIS te downloaden als onderdeel van het Windows NT 4.0 Option Pack. Dit is te vinden op de (gratis) Windows NT4.0 Option Pack cd, of is op [1] te downloaden.

Waar je IIS kunt vinden en hoe je het installeert kun je hier lezen.

Hoewel ASP.NET een Microsoft-technologie is, werkt het niet alleen op het Windows-platform. Er zijn ASP.NET-implementaties zoals Open Source Mono Project (www.go-mono.com) en DotGNU Project (www.dotgnu.org), die werken met andere webservers en op andere platforms, zoals Unix en Linux. Hoewel deze implementaties qua opzet hetzelfde zijn, zijn er wel kleine verschillen. ASP.NET van Microsoft maakt namelijk gebruik van componenten die standaard deel uitmaken van Windows. Deze componenten bestaan niet altijd op andere platforms.

Verschillen met ASP[bewerken]

ASP.NET is niet zomaar een nieuwe versie van ASP. ASP.NET is radicaal anders in aanpak. Zo lijkt het maken van applicaties met ASP.NET veel meer op het maken van bijvoorbeeld Visual Basic- of Delphi-applicaties. Dit heeft te maken met het feit dat ASP.NET onderdeel is van het .NET Framework, waarin alle soorten applicaties gebruik maken van dezelfde onderliggende infrastructuur en dus ongeveer op dezelfde wijze gemaakt kunnen worden.

Met ASP.NET kan je ook in de ene programmeertaal gebruik maken van objecten die geschreven zijn in een andere taal.

Er is bij de ontwikkeling van ASP.NET veel aandacht besteed aan het vereenvoudigen van dingen die vaak gedaan worden. Zo is bijvoorbeeld het weergeven van gegevens uit een database kinderspel geworden, de meeste 'code' daarvoor heeft ook veel weg van HTML, waardoor het ook voor HTML-developers betrekkelijk makkelijk te gebruiken is.

ASP.NET heeft veel nieuwe elementen:

  • Webformulieren. Webformulieren maken het mogelijk formulieren te ontwerpen die eigenschappen, methodes, en events bevatten voor alle invoerelementen. Daardoor is het gemakkelijk om eender welk onderdeel te gebruiken in je code.
  • Servercontrols. De servercontrols van ASP.NET vormen een belangrijk onderdeel van het nieuwe programmeermodel en komen ongeveer overeen met de HTML-elementen (plus enkele aanvullende besturingselementen). Server-controls worden uitgevoerd op de server, en kunnen als uitvoer HTML geven. In hoofdstuk 5 worden servercontrols besproken.
  • User-controls. Je kunt zelf je eigen controls bouwen met ingebouwde functionaliteit. Deze kunnen dan op alle webformulieren gebruikt worden.
  • Webservices. Deze bieden ontwikkelaars de mogelijkheid programmatische services via het internet aan andere ontwikkelaars beschikbaar te stellen.
  • Caching. ASP.NET heeft een krachtige nieuwe caching-engine, waarmee ontwikkelaars de prestaties van hun toepassingen kunnen verbeteren door de belasting van de webservers en databaseservers te verminderen.
  • Verbeteringen in de configuratie. ASP.NET slaat de configuratie-informatie voor webapplicaties op een andere manier op.
  • Gecompileerde code. Code wordt alleen de eerste keer vertaald vanuit de programmeertaal. Daarna wordt ze in gecompileerde vorm bewaard en telkens opnieuw gebruikt, waardoor veel tijd uitgespaard wordt, en waardoor de prestaties opmerkelijk verbeteren.
  • Ondersteuning voor meerdere programmeertalen. Naast VB wordt bijvoorbeeld ook C#, C++ en JScript ondersteund.

Vroeger gebruikte Microsoft nogal eens de onveilige "Frontpage Serverextensies". In ASP 3.5 is het mogelijk om ervoor te kiezen om die uit te zetten. Het grote voordeel daarvan is dat:

  • men geen ondersteuning nodig heeft voor Frontpage Serverextensies bij de internet provider;
  • men gewoon bestanden kan kopiëren van de lokale schijf naar de online lokatie bij de internet provider. Voorheen moest dat binnen Frontpage.

In plaats daarvan zit alle benodigde code gewoon in de betreffende bestanden.

Programmeren in ASP.NET Benodigdheden →
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.