Kom igång med ASP.NET, del 2 - Första projektet
När vi nu har installerat verktygen så är det dags att skapa första projektet. Det vi kommer att skapa är ett ASP.NET MVC-projekt. Det finns två olika typer av ASP.NET-projekt, Web Forms och MVC. Web Forms är den första varianten som kom med .NET 1.0, och MVC är den nyare som kom efter .NET 3.5 SP 1. Skillnaden i dessa ligger i hur man jobbar med presentationen, men då de båda bygger på .NET så är det inte svårt att lära sig det andra när man har lärt sig det ena.
Det första vi ska göra är att skapa ett nytt projekt i Visual Web Developer. Vi börjar med att starta programmet, vilket ger en startskärm med lite olika alternativ. Det vi väljer här är att skapa ett nytt projekt.
Under Visual C# -> Web så finner vi ASP.NET MVC 2 Web Application, vilket är vad vi ska skapa upp.
Vi kallar projektet för "FirstProject", och låter "Solution name" vara detsamma. Klicka nu på OK.
En solution är en samling med projekt. Varje projekt är en enskild modul, och kan bestå av t.ex. en Silverlight-applikation, en webbsajt, en console-applikation eller kanske ett Xbox-spel (allt går att göra med .NET!).
När vi har skapat upp projektet så kan vi se att startsidan har stängts ned och vi till höger har en ruta med titeln "Solution explorer". Alla filer projekt och dess tillhörande filer kan vi hitta i denna ruta. Genom att dubbelklicka på någon fil så får vi upp den i editorn. Alla rutor, inklusive denna, kan flyttas runt på skärmen (även till andra skärmar), vilket gör att man får möjlighet att anpassa det efter de behov man har.
Om vi ser i Solution explorer så kan vi se att det inte bara är vanliga mappar och filer vi har där, utan även andra alternativ:
Om vi öppnar upp Properties så kan vi se att vi får en mängd olika alternativ. Det som finns här är unikt för det specifika projektet. Det som ändras här kommer att finnas kvar i inställningarna för projektet, även om vi stänger ned projektet och öppnar upp det igen.
Det vi kommer att ändra nu på en gång är webbserver-inställningarna. Som standard så används en inbyggd webbserver när man startar ett projekt i Visual Web Developer, men då vi vill kunna använda funktionaliteten i IIS i fortsättningen så väljer vi att under Web i Properties sätta webbservern till IIS (det kan kräva administratörsrättigheter, så då måste vi starta om Visual Web Developer genom att högerklicka på ikonen och välja att starta som administratör).
För att skapa upp en virtuell katalog så klickar vi på knappen "Create Virtual Directory". Alla webbsajter man skapar bör ligga i en virtuell katalog, eller en egen web site i IIS.
Vi väljer nu att spara projektet.
Går vi in i IIS så kan vi se att en ny virtuell katalog har skapats med en mängd olika inställningar. Testa gärna att klicka runt bland dess inställningar för att utforska funktionerna lite!
Går vi tillbaka till Visual Web Developer så kan vi se att vi har en fil kallad AssemblyInfo.cs under Properties, och det är precis vad namnet säger. När vi kompilerar projektet så skapas en assembly (dll-fil), och AssemblyInfo.cs anger olika egenskaper för assemblyn.
Om vi öppnar upp AssemblyInfo.cs så får vi upp en del olika egenskaper som förklarar vad projektet gör. Ta det som vana att fylla i dessa, då det gör det enklare att i efterhand se vad olika assemblies har för syften. Egenskaperna har inget med funktionaliteten i sig att göra, utan är helt och hållet för utvecklarna själva.
Går vi vidare i Solution explorer så kan vi även hitta References. Det är referenser till olika assemblies, med specifika användningsområden. Som exempel så behöver vi en referens till System.Data för att få tag i funktionerna som har med databashantering att göra, och System.Web för att få tillgång till de ASP.NET-specifika delarna.
Om vi inte kommer åt någon funktion så beror det ofta på att man inte har en referens till rätt assembly.
Om vi väljer att använda tredjepartskomponenter så måste vi även lägga till dem som referenser för att få tillgång till funktionaliteten.
Då det är ett ASP.NET MVC-projekt så får vi vissa mappar och filer från början som innehåller funktionalitet som underlättar för oss.
Mapparna Models, Views och Controllers är de som är MVC-specifika. MVC i sig förklarar hur presentationen skall hanteras. Om vi till exempel vill lista olika kunder så börjar vi med att ha en modell (klass) kallad "Kund" och egenskaper för kunden (till exempel Namn, Adress, Telefonnummer med mera). Vi behöver även en controller. Här plockar vi tag i alla kunder och returnerar till vyn, vilket är filen som skapar all HTML.
Utöver detta så finns filerna global.asax och web.config, vilka är standardfiler i alla webbprojekt.
I global.asax så kan vi till exempel registrera så kallade "routes" och annat. En route förklarar hur url:erna på sidan byggs ut. Vi kan till exempel ha http://www.sidan.se/customers/123 för att visa kunden med id satt till 123.
Web.config innehåller alla inställningar vi vill göra för sidan. Här kan vi samla connection strings, variabler som skall vara globala för sajten, registrera HttpModules och HttpHandlers och mycket annat. Det här är en av de absolut viktigaste filerna i ett projekt.
Så vad får vi i det här projektet som standard?
Redan nu så har vi faktiskt en fullt fungerande sajt. Genom att trycka på F5 så kompileras vårt projekt och startas upp i webbläsaren. Vi får en fråga om vi vill aktivera debugging, och där väljer vi att modifiera web.config för att tillåta det. Debugging är en av de absolut största fördelarna med Visual Web Developer och de andra Express-programmen (och självklart Visual Studio). Den här frågan får vi bara en gång under projektets arbete då inställningen sparas i web.config.
När webbprojektet har kompilerats så startas Internet Explorer med sajten automatiskt. Vi kan här se att det vi fick från grunden var en enkel sida byggd på ASP.NET MVC, och som faktiskt har stöd för olika sidor (vyer), samt möjlighet att skapa användare och logga in med, trots att vi inte har skrivit en enda rad kod än så länge!