07. april 2004 - 15:47Der er
10 kommentarer og 1 løsning
.NET - Client side og server side?
Hej.
Jeg har i et godt stykke tid skrevet normalt ASP. Men så fik jeg sniffet lidt til .NET
Og jeg kan ikke rigtigt hitte ud af hvad der er client side og hvad der er server side. Det ser også ud til at man kan have f.eks onclick events serverside. Hvordan virker det lige?
Jeg er godt forvirret. Hvordan virker .NET teknologien i praksis? Og hvad kan det bruges til i forhold til den gamle ASP?
ASP og PHP bliver ikke forældet, i hvert fald ikke lige med det samme. Men det er højst tænkeligt, at "nye opfindelser" ikke kan laves med ASP classic, og at fx nye restriktioner, som begrundes med sikkerhedshensyn, vil kunne indskrænke de praktiske anvendelsesmuligheder for ASP og PHP.
.NET er tænkt til andet og mere end web-applikationer, så du kan ikke i alle sammenhænge kun se det som server-side / client-side. Men hvis du beholder ASP-brillerne på, så er ASP.NET server-side.
Noget af forvirringen skyldes, tror jeg, at der i .NET udviklingsmiljøet (Visual .NET osv) er komponenter, som genererer markup (HTML eller XML). Som en del af sådan en komponent hører ofte, at man på design-tidspunktet også kan specificere fx onclick events, som så bliver en del af den genererede markup, der skal sendes til klienten på køretidspunktet. Men det er i sidste ende almindelig markup, der sendes til browseren, så jeg synes ikke man kan sige, at ASP.NET på nogen måde er client-side. Det handler mere om, at udvikleren i nogle sammenhænge ikke behøver bekymre sig om, hvorvidt noget foregår på serveren eller hos klienten, bare komponenten virker efter hensigten. Validering af forms er et udmærket eksempel, hvor nogle ting kan kontrolleres allerede i klienten med javascript, mens andre kræver database-opslag og derfor kun kan foretages på serveren.
Noget af forvirringen kan også skyldes, at der i ASP.NET version 1 kan opereres med to sider pr. webside: En til det synlige, og en til programmeringen bagved. Det har med det at gøre, at .NET kompilerer koden i stedet for kun at fortolke på kørselstidspunktet, sådan som classic ASP/VBscript fortrinsvis gør det. Det giver en hastighedsgevenst, men desværre også noget roderi med at holde styr på filen med den kompilerede kode. Version 2 vil tilbyde automatisk kompilering "on demand", som ikke smider den oversatte kode væk bagefter. Derved bliver der i version 2 langt bedre mulighed for at arbejde på samme måde som man har været vant til med classic ASP.
Det "rene" .NET består af en omfangsrig samling af klasser: .NET Framework. Kernen er den slags basisfunktioner, som man forventer er til stede i ethvert ordentligt programmeringssprog, fx datogymnastik, for nu at nævne noget forholdsvis banalt. Det nye er i denne sammenhæng, at uanset ens valg af programmeringssprog vil man i .NET i sidste ende trække på det samme sæt af basisrutiner.
Framework'et har klasser på flere niveauer, lige fra det helt basale op til det ret så abstrakte. Men selv om det er komplekst og omfattende, er det meget logisk opbygget. Som Einstein sagde: Things should be made as simple as possible, but no simpler. Det har Microsoft gjort nydeligt med .NET-framework'et. Hvad Microsoft måske har gjort knapt så nydeligt, er at de i deres markedsføring har lagt meget stor vægt på, hvordan .NET kan tage sig ud fra en Visual "træk-og-slip"-udviklers synspunkt. Det virkeligt elegante ved .NET ligger efter min mening primært i de lavere niveauer af framework'et.
De mange design-time faciliteter kan utvivlsomt gøre rutinerede udviklere mere effektive. Især hvis de forlader sig på default-værdier og ikke roder sig for meget ud i at ville finpudse detaljerne efter deres eget hoved. På den måde bliver .NET et oplagt hit for folk i firmaernes IT-afdelinger, hvor der typisk er meget intranet og back-office at arbejde med. Men sidder man som fritidsprogrammør og jævnligt kaster sig ud på dybe i blind tiltro til at de kloge folk på ekperten.dk altid vil smide en redningskrans ud til én på fem minutter, ja så kan .NET nok vise sig at være for stor en mundfuld.
Jeg er ikke sikker på jeg forstår "tillægsspørgsmålet". ASP "Classic" handler jo udelukkende om server-side scripting, mens .NET-konceptet handler om applikationsudvikling og -afvikling i bred forstand. Man kan tage det som et tegn på, at Microsoft ikke længere kan forestille sig, at nogen ville bygge en applikation, som ikke er internet-aware.
Ja, det skulle jeg mene, men her er jeg ikke "ekspert". Men jeg udvikler hjemmesider helt ligeom andre programmer ~ en hjemmeside er i den sammenhæng bare et program, som skriver HTML.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.