Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer i form af sider / services. Webserveren sørger for trådning, så flere klienter kan arbejde på samme applikation. Der oprettes et nyt side/service object for hvert kald fra klient. Webserveren anvender HTTP protokollen, der som udgangspunkt er stateless, men klienten får tildelt en sessionid, der kan bruges i forbindelse med at holde en state (sendes med i request). ISS webserver og web applikationer
Mappestrukturer i ASP.NET Webapplikationen er placeret i sin egen virtuelle mappe. En fysisk undermappe kan godt samtidig være ”hjemsted” for en ny applikation. Sider og andre filer kan være placeret i undermapper, idet standard er nogle specielle mapper, som ses til højre
ASP.NET filtyper (C# som sprog)
Statisk / dynamiske sider Serversiden: På serversiden er HTML sider og HTML kontroller i ASP.NET sider statiske. På serversiden opnås dynamiske sider med asp.net kontroller og bagvedliggende kode. Klientsiden: Klienten modtager HTML side, der præsenteres med en browser, der som udgangspunkt er statisk, men der kan indlejres javascript (og andre dynamiske elementer som fx flash) i koden, der kan gøre siden dynamisk på klientsiden. Med Javascript, kan HTML dokumentet hos klienten ændres – browseren tilpasser visningen dynamisk når siden ændres, scriptet kan evt. indeholde kald til server for at hente nye dataelementer til dokumentet, hvilket er det der sker med brug af AJAX.
Page request og postback Behandlingen på serveren er forskellig, når siden aktiveres som en request (ny side) og når den aktiveres som en postback (efterfølgende kald fra form til siden på bagrund af event), hvor der kan være data fra form’en med tilbage til serveren. Hvorvidt et event på klienten skal føre til en postback kan styres på kontroller med en property (AutoPostBack) På Knapper er AutoPostBack som udgangspunkt sat til true, men for øvrige er det false og man skal så selv ændre, hvis man ønsker en postback. Bemærk at på serversiden oprtæder Page:Load eventet (kalder Page_Load metoden) både ved request og postback, samt at dette event optræder andre triggede events. Man kan teste, om det er en PostBack med IsPostBack property’en.
Oprettelse af ASP.NET projekt (video klip – klik på det for at afspille video)
ASP.NET – web site projekt Vælg New Web Site og angiv mappe for websitet Du skal huske selv at angive en ny undermappe, da der ikke automatisk foreslås en undermappe til solutionmappen. Det er en god idé, at lave en undermappe inde i solutionmappen, så webprojektet kommer med når du kopierer eller zip’er din solutionmappe.
Webform controls ASP.NET kontrollerne optræder som ”HTML-agtig” kode i ASPX siden. ASPX-siden bliver før til compileret kode (misil-kode – en klasse) sammen med den tilhørende C# fil, og resultatet vil resultere i noget HTML-kode samt evt. noget javascript-kode, i det output, der sendes til klienten. Hvis sourcen ikke er compileret inden første kald til siden, vil første kald resultere i en compilering til misil-kode og det er denne der afvikles af den normale.NET engine.
Postback For at indhold føres med til server skal der ske en postback. På kontroller styres med AutoPostBack property om et event på klienten skal resultere i en automatisk postback. For knapper er default for AutoPostBack true, men på øvrige er default normalt false. Vær kritisk i beslutningen om et event skal resultere i kald til server.
Validators Validators optræder i ASPX siden typisk som nogle propeties på kontrollerne og vil typisk resultere i, at der dannes javascript i det HTML-response, der sendes til klienten.
RequiredField & Range-Validator på klientside
RegularExpressionValidator Stærk kontrol til validering af felter med regulære udtryk på klientsiden. Flere færdige udtryk eller selv- defineret
CompareValidator For validering af afhængige felter på klientside.
CustomValidator CustomValidator med validering på klientside ved brug af JavaScript. Script kan indskrives i sourcefilen.
ValidatorSummary
Web control library
Web user controls
Web user control - opbyg
Web user control - brug
Databaser i webprojekter
Opsætning for mappegennemsyn i web.config - filen Styringen om man må browse i mapper eller ej - styres af elementet directoryBrowse i sektionen system.webServer. Man skal samtidig så huske ikke at have en default / index fil, som der automatisk startes hvis der kun angives et websted
Åben for ekstern adgang til webserver (her fra xp)
Åben for ekstern adgang til webserver (her fra vista)
ASP.NET – web site publish
ASP.NET – site-version (IIS 6.0)
Mappebrowsing (IIS <=6.0)
Mappebrowsing (IIS 7)
Debug af web-site
Tracing af webside
Egne trace-beskeder
Tracing på applikationsniveau