Introduktion til ASP.NET

Tags:    .net asp.net
Skrevet af Bruger #293 @ 05.04.2004
ASP.NET er næste generation af ASP baseret på Microsofts .NET Framework.
I forhold til traditionel ASP er det ikke småting der er sket af ændringer, nogen vil gå så vidt som til at sige at det eneste de to teknologier overordnet har tilfælles, er navnet.
Der er tale om en sproguafhængig serverside web-teknologi der løfter webudvikling op på et højere plan. Denne artikel er primært en appetitvækker hvor jeg vil komme ind på nogle af de største forandringer der er sket og kort illustrere de største fordele og ulemper.

Adskillelse af layout og funktionalitet
I modsætning til sin forgænger og andre scriptbaserede løsninger gør ASP.NET det muligt at adskille sin funktionelle kode med sit layout (HTML). Det er altså slut med at flette en masse scripttags sammen med din html kode. I stedet placerer man sin funktionelle kode i en såkaldt Codebehind fil som HTML filen så refererer til.
I praksis betyder dette at din funktionelle kode ender i en eller flere kompilerede .dll filer og at du opnår et mere overskueligt kodedesign. For et udviklingsteam betyder det at bliver nemmere for designerne og programmører at arbejde sammen da den funktionelle kode kan udvikles uafhængigt af designet.

Kompilerede hjemmesider
Med ASP.NET bevæger vi os væk fra webudvikling via scriptsprog og overgår i stedet til ægte kompileret kode, som vi kender det fra normale Windows applikationer. Det har den konsekvens at din kode ikke længere bliver fortolket en linie af gangen som ved traditionel ASP. I stedet bliver din kode JIT (Just In Time) kompileret til IL (Intermediate Language) kode og eksekveret af webserveren. I praksis betyder dette en meget klar hastighedsforøgelse. Microsoft selv, oplyser at hastigheden er forøget med 3-5 gange i forhold til traditionel ASP.

Sprogundersøttelse
Som tidligere nævnt er ASP.NET sproguafhængigt. Det er dog et krav at sproget understøtter .NET. De officielle understøttede sprog er C++, C#, VB.NET og J#. Udover de nævnte findes der over 35 uofficielle sprog der ligeledes kan anvendes. Jeg vil dog kraftigt anbefale at man vælger enten C# eller VB.NET eftersom stortset alle tutorials og eksempler på nettet er henvendt til et af disse sprog.

Object Orienteret Webudvikling
ASP.NET er det første framework der tager skridtet fuldt ud og introducerer ægte OOP (Objekt Orienteret Programmering) principper til webapplikationer. Og det er ikke tilfældigt jeg vælger at bruge ordet ”Webapplikation”, for med ASP.NET er der ikke længere den store forskel på at kode en hjemmeside eller en Windows applikation. Det betyder også at ASP.NET i første omgang er mest interessant for udviklere med OOP kompetencer og erfaring indenfor applikationsudvikling. For lad mig sige det med det samme, indlæringskurven er meget stejl for webudviklere der ikke har anden baggrund end ASP/PHP. Jeg vil ikke gå i dybden med at beskrive OOP udvikling eftersom det er et størrer emne, men vil man lære ASP.NET er der ingen vej udenom.
Har man ikke erfaring indenfor OOP vil jeg anbefale at man gemmer ASP.NET lidt og i stedet ligger ud med at lære lidt grundlæggende C# eller VB.NET, jeg vil anbefale at læse følgende artikel: http://www.c-sharpcorner.com/Code/2003/July/OOPIntroduction.asp

Produktivitet og fleksibilitet
Nu spørger du måske dig selv: ”Hvorfor skal det være så kompliceret? Jeg har klaret mig fint tidligere uden at kende noget til OOP og avancerede programmeringssprog”.
Det korte svar er at det er nødvendigt for at bringe webudvikling op på et højere niveau der betyder øget fleksibilitet og produktivitet.
Forestil dig at kunne anvende den samme forretningslogik (dit systems grundfunktionalitet) til henholdsvis en Windows applikation og en webapplikation. Forestil dig at din forretningslogik kan ligge på en server for sig selv hvor den kan tilgås af både dit website, forskellige applikationer eller f.eks. din mobiltelefon på samme tid. Forestil dig at du i stedet for at kopiere den samme kode fra projekt til projekt, i stedet kan genbruge denne på tværs af dine projekter. Og forestil dig at kunne SOAP kommunikere mellem dit website og dine serverapplikationer.
Alt dette og meget mere muliggør ASP.NET.
Kombiner dette med muligheden for at tilgå de over 4500 klasser i .NET Frameworket og du har en meget stærk løsning.

Værktøjer
Hvis man er typen der foretrækker WYSIWYG (What You See Is What You Get) redigering af hjemmesider er der nogle meget stærke værktøjer man kan anvende der er specifikt målrettet ASP.NET udvikling.
Først og fremmest er der selvfølgelig Microsofts eget udviklingsmiljø, Visual Studio.NET, som er et glimrende værktøj. Det kan dog være en bekostelig affære, især hvis man blot ønsker at snuse lidt til teknologien. Langt mere interessant er det derfor at Microsoft også har udgivet en gratis light-version specielt designet til ASP.NET kaldet Web Matrix. For mere information om dette værktøj, se http://www.asp.net/webmatrix.

Fordele og ulemper
Følgende er en kort oversigt over fordele og ulemper som jeg ser ved denne nye teknologi.

Fordele:
• Produktivitet: Kodegenbrug er markant forbedret.
• Fleksibilitet: Mulighederne er nærmest uendelige, stortset alt hvad der er muligt at udføre fra en Windows applikation kan nu også lade sig gøre fra en webapplikation.
• Teamudvikling: Bedre adskillelse af layout og funktionalitet gør samarbejde mellem programmører og designere betydeligt lettere.
• Komponentudvikling: Det er blevet markant nemmere at udvikle egne serverkomponenter, især med det indbyggede templatesystem. Dette kan drastisk forbedre kodegenbrug på et website og ikke mindst gøre det langt mere overskueligt.
• Sproguafhængighed: Programmer hjemmesider i dit yndlingssprog.
• Hastighed: Markant forbedret hastighed i forhold til traditionel ASP.
• Fejldetektering: Mange fejl kan fanges når projektet kompileres, fremfor når en bestemt side indlæses.

Ulemper:
• Platformsuafhængighed: Der er primært kun understøttelse for Windows. Der er dog forskellige projekter i gang for at konvertere .NET til andre platforme (se bl.a. www.go-mono.com). Microsoft har ligeledes gang i et projekt kaldet Rotor der har til formål at bringe .NET til bl.a. FreeBSD og MacOS, pt. inkluderer det dog ikke understøttelse for ASP.NET (Har det interesse kan der læses mere om Rotor her: http://www.microsoft.com/downloads/details.aspx?FamilyId=3A1C93FA-7462-47D0-8E56-8DD34C6292F0&displaylang=en).
• Kompleksitet: For folk der kun har en baggrund i ASP eller PHP og ikke kender til OOP, er indlæringskurven forholdsvis stejl. Der er en del koncepter man skal have på plads før man for alvor kan drage nytte af det.
• Udbredelse: Det er ikke alle webhoteller der har understøttelse for ASP.NET, så det vil være en god ide at tjekke op på om dit eksisterende webhotel har support for det. Ellers er det også muligt at finde enkelte steder hvor der tilbydes gratis hosting af ASP.NET sites.

Konklusion
ASP.NET er en meget stærk teknologi til webudvikling der vil komme til at sætte standarden de næste mange år. Det er intet mindre end imponerende hvad Microsoft har formået at levere i første version og ifølge de første tidlige annonceringer har vi meget mere i vente.
De første store portaler har taget ASP.NET i brug og det forventes at mange flere vil følge det kommende år, som .NET udviklere går vi en meget spændende tid i møde.

Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (15)

User
Bruger #2730 @ 07.04.04 08:48
Kanon artikel, dejlig kort og præcis beskrivelse af ASP.NET. God introduktionsartikel. Jeg er specielt glad for at denikke indeholder nogen kode, da der er behov for at blive introduceret til principperne inden man begiver sig i kodning. Håber den bliver fuldt op af nogle flere i samme kvalitet.
User
Bruger #2649 @ 14.04.04 19:19
Fin Artikel
Mangler lidt et link til et af de websteder der understøtter ASP.net
User
Bruger #293 @ 14.04.04 23:14
Hejsa og tak for de fine ord.
Jeg håber at få tid til at skrive flere artikler i fremtiden, men ligenu er jeg lidt ophængt.

Charlie: Brinkster ved jeg har haft gratis ASP.NET hosting tidligere, det virker dog ikke som om det er noget de reklamerer sønderligt med længere. Jeg tror dog det er det du kan signe op til på denne side https://www.brinkster.com/Registration/default.asp hvis du følger det nederste link "For the General Solution (Free) Click Here".

Sig til hvis jeg er rigtig på den :)

Ellers er der: http://europe.webmatrixhosting.net

Det er dog kun et trial website som kun virker i 30 dage, men det kan bruges til at lege og komme igang med ASP.NET.

Det var lige umiddelbart dem jeg kendte til, men jeg har aldrig selv haft brug for gratis hosting så jeg er ikke ligefrem ekspert i hvad der findes af firmaer der tilbyder den slags :)

Håber det kunne være en hjælp.
User
Bruger #4265 @ 05.05.04 14:17
Kanon artkel.
Lige det jeg havde brug for at vide om ASP.NET :)
Ved du så hvor der er tuts til ASP.NET, vil gerne læse lidt om hvordan det virker med kode.

- Pelle Ravn
User
Bruger #293 @ 08.05.04 00:23
Pelle: Et godt sted at starte er http://samples.gotdotnet.com/quickstart/aspplus/

og ellers er der massere af sites dedikeret til ASP.NET udvikling, bare søg lidt rundt på google :)
User
Bruger #5673 @ 09.05.04 14:20
Der er en gennemgående forståelsesfejl fra forfatterens side: "For folk der kun har en baggrund i ASP eller PHP og ikke kender til OOP, er indlæringskurven forholdsvis stejl." - Nej!! indlæringskurven er IKKE stejl. Det ville nemlig betyde at man lærte det meget hurtigt, hvilket ud fra sammenhængen vist ikke er forfatterens synspunkt.
User
Bruger #293 @ 11.05.04 09:10
Daniel: Prøv at slå "Stejl Indlæringskurve" op på google, den bruges tilsyneladende både på den måde du fortolker den og den måde jeg fortolker den. Jeg var selv lidt i tvivl om jeg skulle anvende det udtryk i artiklen dengang, men eftersom et klart flertal af de resultater jeg fik frem tolkede den efter min opfattelse af udtrykket valgte jeg at benytte det.
User
Bruger #293 @ 11.05.04 09:20
Iøvrigt .. hvordan kan du påstå at det er en gennemgående forståelsesfejl fra min side når udtrykket kun anvendes 1 sted i artiklen og egentlig ikke har noget med ASP.NET at gøre som er det artiklen handler om.
Desuden kan det højst være en forståelsesfejl af udtrykket "Stejl indlæringskurve", men meningen er dog givet ud fra konteksten vil jeg mene (som du tilsyneladende også ressonerede dig frem til).

Hvis du kan henvise til noget faktuelt omkring brug af det udtryk så gir jeg mig gerne og retter det i artiklen, men nu har jeg set lærer, professorer og andre højtuddannede personer bruge det i begge betydninger, så der hersker tilsyneladende ret stor forvirring om det udtryk.
User
Bruger #2730 @ 25.05.04 09:32
Nu vi har gang i at smide med forkert brug af ordene så kan vi tage fat i ord som: bjørnetjeneste - posistivt eller negativt ?? (rent faktisk negativt, men ifølge den nye danske betydningsordbog kan det betyde begge dele). Jeg tror måske at man kan fortolke en "stejl indlæringskurve" på begge måder. For mere af samme skuffe kunne man se denne diskution: http://www.ing.dk/apps/pbcs.dll/news_message?SearchID=73172633333688&Kategori=SEARCH&ThemeID=47227&GroupId=972491&InReplyTo=1105479
User
Bruger #4242 @ 01.08.04 17:59
Hejsa

Meget spænende artikel, men jeg synes, du laver en fejl, der måske siger lidt for meget "SE ASP.NET ER NYT OG ER IKKE MED SCRIPT MED NU MED OOP SPROG - ENDDA DET FØRSTE". Fakta er, at det ikke er det første. JSP, der er en del ældre end ASP.NET, er lavet af JAVA, der som sagt også er OOP. Derfor er det ikke ASP.NET, eller Microsoft, der tager skridtet ud og får webapplikationer op på et højere plan - næ, de følger snarere efter, ligesom Microsoft altid gør ;)

Så, selvom ASP.NET er nok så nyt, fint og smart, er det ikke det første OOP og komplierede webprogrammeringssprog - det er JSP.

Milhøj
User
Bruger #6259 @ 09.08.04 15:46
Næste gang i skriver en artikel, så find venligst en forfatter der har styr på sin IT historie ..

Jeg tror Bjarne Stoustrup er meget ked af at høre, at ASP.NET er det første ægte OO programmeringssprog til web, da du, Daniel, dermed mener at C++ aldrig enten 1) har været ægte OO eller 2) ikke kan bruges til web ..

Hvordan mon man lavede CGi scripts tilbage i "gamle" dage, hvis man ikke havde C/C++ og dermed Perl?

Læs din IT historie, Daniel, og kom så igen. Motivet er ædelt og artiklen er som sådan godt skrevet, det trækker bare lidt fra, når de faktuelle oplysnnger er ukorrekte.
User
Bruger #293 @ 10.09.04 18:56
Casper og Mikael: CGI/ISAPI har jeg med vilje ikke taget i betragtning da de teknologier integrerer ret dårligt med html delen .. du kan ganske rigtigt lave OOP forretningslogik, men du har ikke en OOP kobling til grænsefladedelen.

Med JSP er det korrekt at vi nærmer os en OOP kobling til grænsefladen og jeg er villig til at acceptere at JSP kom først, om end koblingen er noget mangelfuld sammenlignet med ASP.NET.

Faktisk har jeg også tidligere indsendt en rettelse til artiklen, netop ang. JSP .. men den er desværre aldrig blevet godkendt :|
User
Bruger #293 @ 10.09.04 18:59
Ups, glemte lige at sige til Casper at jeg beklager at det ikke fremgik ret tydeligt i artiklen hvad jeg mente med "ægte OOP til webudvikling", håber du kan godtage min forklaring og så ville det også hjælpe lidt på yderligere misforståelser hvis artiklen ville blive opdateret med rettelsen :)
User
Bruger #1743 @ 30.11.04 14:06
Et 5-tal til en utroligt indsigts-givende artikel, som efter min opfattelse, hverken er for meget eller for lidt.

Du kommer godt om med "appetitvækker"-konceptet og formår at holde dig netop der.

Som Brian H. fremhævede, vil jeg også lige fremhæve at jeg synes det er utroligt rart, at artiklen på sit niveau, holder sig der, ved at undgå kildekode.

Jeg håber også der kommer mere fra din side, men forstår udemærket hvis moralen er lav, da 5 nok ikke var i den rigtige ende, hvis det var sitet's artikel-komité vi skulle bedømme.

Håber bestemt at artiklen bliver opdateret snarest og at du vil indvi os yderligere i dette djævelskab fra Microsoft.
User
Bruger #5010 @ 31.01.06 15:25
Synes det er en kanon artikel. Har længe gået og undret mig lidt over "hvad" .net egentligt er - for for mig har det bare virket som en eller anden udefinerbar substans, som alle snakkede om, men ingen rigtig vidste noget om´:)
Du skal være logget ind for at skrive en kommentar.
t