Grundkurs i ASP.NET
Förord
Ett ämne som jag tror många är mycket intresserade av är ASP+. Därför har jag skrivit den här grundkursen i vad ASP+ är och vad man kan göra med det. Kursen består av fem kapitel, och jag ska försöka publicera ett varje vecka. Kursen kommer att vara inriktad på ASP+, inte VB.NET, ADO+ eller .NET i allmänhet. Om intresse finns behandlas dessa möjligen i senare artiklar. Dessutom 'förutsätter' den kunskap i ASP. Visst kan man tillgodogöra sig innehållet i denna kursen utan kunskap om ASP, men kursen kommer inte att förklara de begrepp som ej är förändrade från ASP 3.0, eller begrepp som relaterar till detta. OBS! Kursen är baserad på information och kod som finns tillgänglig och fungerar i en tidig version av .NET och ASP+. Microsoft lämnar inga garantier för att funktionaliteten i den slutliga produkten är likadan som den är i denna version.Innehåll
»»
»
»
Kapitel 1: .NET och ASP+
Hello, WorldFör att förstå vad ASP+ är, och hur det fungerar så måste vi börja med att titta på .NET. Men först har vi den obligatoriska inledningen med ett ”Hello, World”-exempel. I ASP+ kan detta se ut så här:
<%@Page Language=”VB” %>
ASP+: Hello, World
<%
Dim HelloString As String = New String(“Hello, World”)
Response.Write(HelloString)
%>
Detta enkla lilla exempel visar direkt några skillnader mot ‘gamla’ ASP. Överst ser vi ett direktiv (eng. page directive) som berättar att koden på sidan är skriven i VB. Just det, ni läste rätt, ASP+ har nu tillgång till hela VB (som faktiskt heter VB.NET numera), inte bara VBScript, vilket faktiskt inte ens existerar längre. Men man kan självklart inte bara skriva ASP+ sidor i VB. Andra språk som man kan skriva i är t ex JScript.NET, C# (Microsofts nya programmeringsspråk, vilket är en personlig favorit) eller t o m C++.
Lite längre ner i exemplet hittar vi sedan något vi känner igen från ASP, nämligen ett renderingsblock med ett start- och slutmärke, <% %>. Innanför dessa finns sedan lite VB-kod. En variabel (HelloString) deklareras, av typen String, och initieras direkt med den sträng vi vill skriva ut senare. Detta är nytt, inte bara i ASP+ utan även i VB, och är en s k konstruktor, precis som i C++. Efter det kommer ett vanligt Response.Write kommando, vilket skriver ut strängen på webbsidan.
.NET
Det är svårt att på ett kort och enkelt sätt beskriva vad .NET är. Först och främst är .NET massor av olika delar, vilka tillsammans bildar en vision. En bra, kortfattad beskrivning tycker jag kan vara följande:Microsoft .NET är en ny plattform för att bygga integrerade, tjänsteorienterade applikationer för att möta dagens och framtidens affärsmöjligheter på Internet.
Vad vi inriktar oss på är ’byggandet’, dvs den del som låter oss utveckla våra tillämpningar. Här finns nedanstående viktiga delar. Observera att nedanstående är mycket enkelt beskrivet.
- Common Language Runtime (CLR)
CLR är hjärtat i .NET. Det är en exekveringsmiljö för kod skriven i flera olika språk (se IL nedan). Den ligger som ett lager ovanför operativsystemet, och ger därmed plattformsoberoende till .NET tillämpningar, så länge dessa plattformar har CLR ’över sig’. - Microsoft Intermediate Language (MSIL eller bara IL)
IL-kod är vad som exekveras i CLR. Det är ett slags mellannivå-kod, inte ett högnivåspråk (som VB, C++ etc) men inte heller så lågt som maskinkod. Det kan t ex skrivas i assembler. Alla kompilatorer (för .NET-språk) skapar IL-kod, vilket gör att kod skriven i VB exekveras i CLR på samma sätt som kod skriven i C# (teoretiskt sett åtminstone). - Common Type System (CTS), samt underspecifikationen Common Language Specification (CLS)
CTS beskriver vad en typ i .NET är. En typ kan liknas vid en klass, med en eller flera medlemmer (egenskaper, metoder, händelser etc). Alla tillämpningar i .NET består av typer, t o m vanliga ASP+ sidor. När en ASP+ sida körs första gången kompileras den till IL-kod, strukturerad i typer. Alla språk kan inte hantera allt det som är beskrivet i CTS (t ex skilja mellan stora och små bokstäver, överlagra operatorer samt mycket mer), så därför finns det en ’underspecifikation’ till CTS, kallad Common Language Specification, CLS. Det som står beskrivet i CLS är vad alla kompilatorer till .NET-språk måste hantera, och om den följs får man 100% språkinteroperabilitet. Dvs en klass skriven i VB kan ärva från en klass skriven i C#, eller tvärtom. - Ett klassbibliotek gemensamt för alla språk i .NET
Allting i .NET är som sagt klasser, med egenskaper, metoder och händelser. Dessa är indelade i ett flertal s k assemblies, vilka innehåller klasserna. I grunden ärver alla klasser från klassen Object, vilken finns i assemblyn System. Denna klass har bl a funktionen ToString(), vilket gör att alla klasser har en funktion ToString(), även t ex ett heltal (Integer). Integer är egentligen bara en omskrivning för klassen System.Int32. Det finns två viktiga begrepp att hålla reda på när man pratar om klasser och assemblies, och det är referenser och importer (OBS! Dessa är inte ’officiella’ begrepp). En referens till en assembly är det som gör att man kan använda de klasser som finns i den aktuella assemblyn. Det kan jämföras med att referera en dll i VB 6. En import däremot gör endast att man inte behöver skriva klasserna med deras fullt kvalificerade namn, t ex System.Net.WebRequest. Om man gjort en import på System.Net räcker det då istället med WebRequest.
Klasserna i det gemensamma klassbiblioteket är som sagt indelade i paket, eller assemblies. Man pratar om fem kategorier av paket (endast för att kunna prata om dem, ingen fysisk indelning på något sätt), nämligen abstrakta OS interface (klasser som ger ett plattformsoberoende gränssnitt mot operativsystemet), Common Programming Library (t ex datatyper och collections), High-Level Programming (tjänster för 'den nya tiden', som t ex XML, meddelandehantering etc), systemfunktionalitet (klasser för att arbeta mot systemet, t ex minneshantering och interop) samt övrigt (kernel, utvecklingsstödklasser).
Förutom det som beskrivits ovan består visionen .NET även av .NET Enterprise Servers (plattformen som ska ge back-end stöd för .NET, som t ex BizTalk Server, Exchange Server, ISA Server etc), .NET Building Block Services (de webbaserade tjänster Microsoft tänker tillhandahålla (mot betalning) som t ex inloggning/verifiering, filhantering och meddelandeservice), Visual Studio.NET samt mycket mer.
Var kommer ASP+ in då?
ASP+ är enkelt sett ett antal assemblies och klasser i NET. ASP+ kör som en tillämpning som hanterar anrop till vissa filtyper (t ex .aspx, .asmx) på en webbserver, ungefär som ASP fungerar idag. Den kan köra side-by-side med ASP, eftersom den hanterar andra filtyper än ASP, och behöver egentligen inte köra på IIS. Det har faktiskt redan gjorts en tidig demo-version på en enkel webbserver som kan exekvera ASP+, av Jon Flanders på DevelopMentor, som svar på en utmaning som Scott Guthrie (en av huvudarkitekterna för ASP+ på Microsoft) gav på en maillista. Scott trodde absolut det var omöjligt att göra detta med den tidiga version av .NET som fanns ute då (den s k PDC Preview), men Jon lyckades alltså. Självklart krävs dock att .NET finns på maskinen där ASP+ ska köras.Vad ger då ASP+ för fördelar mot ASP 3.0 och andra webbmiljöer? Nedanstående lista är bara en kort sammanfattning av en del av allt som ASP+ innebär.
- Stabilitet, snabbhet och skalbarhet. Eftersom allt som körs i ASP+ är kompilerad, s k managed code (kod som kör i CLR), så blir prestandan mycket bättre.
- Enkelhet. ASP+ gör det enkelt att utveckla webbapplikationer. Här finns Server Controls som förenklar många vanliga uppgifter, som t ex validering, presentation av data och formulärhantering. Kod och gränssnitt kan separeras helt och hållet, ungefär som i VB6 idag.
- Kraftfullhet. Eftersom ASP+ är en del av .NET har man enkelt tillgång till allt som en vanlig applikation har tillgång till, som t ex datahantering, meddelandehantering mm. ASP+ kod kan dessutom skrivas i vilket språk som helst (som fungerar i .NET), inte som tidigare i endast skriptspråk.
- Utbyggbarhet. Det är enkelt att ’koppla in’ sin egen funktionalitet i ASP+ där man vill. Om man t ex vill ändra någon funktionalitet i ASP+ är det bara att ärva in denna i en egen komponent och ändra det man vill.
- Användbarhet. Alla inställningar i ASP+ är text i XML-form. Inställningar kan därför ändras utan administrationsgränssnitt, det är bara att ändra i en textfil. Lika enkelt är det att lägga upp en applikation på en server, det är bara att kopiera in filerna. Ingen serveromstart behövs, inte ens för att ändra på exekverande, kompilerad kod!
I nästa kapitel ska vi börja titta på web forms, som är själva webbsidorna i en ASP+ applikation.
Kursen är även publicerad på Hedgate.NET
Var denna artikeln användbar?
Om du gör någon intressant som grund av detta material så skicka gärna det med ett mail eller bifoga en länk till mig så presenterar jag detta som ytterligare exempelfiler för kursen. Om detta innehållet är felaktigt eller du lärt dig fler finesser så skriv gärna en rad eller varför inte en egen kurs baserat på dina erfarenheter. Sänd gärna in kommentarer till denna kurs./Christoffer Hedgate
0 Kommentarer