.NET arkitekturen

Tags:    .net
Skrevet af Bruger #479 @ 15.12.2003

.NET


Microsofts .NET platform er en fælles betegnelse for en række standarder, teknologier og produkter, der samlet udgør en udviklingsplatform. Microsoft har udtalt, at 80% af deres research og udviklingsbudget går til .NET, og resultat er virkelig imponerende
Det grundlæggende i .NET, er for os udviklere .NET frameworket, som vil blive grundigt beskrevet senere. Frameworket er bygget til udvikling af Windows og Web baserede applikationer, men muligheden for andre platforme er der. Jeg vil ikke komme nærmere ind på mulighederne for .NET på andre systemer, men til de interesserede kan jeg henvise til mono projektet: http://www.go-mono.com/

.NET frameworket understøtter pt. Over 35 forskellige sprog, fordi frameworket giver mulighed for integration af andre sprog. Frameworket indeholder kompilere, og alt andet der er nødvendigt for afvikling af programmerne. Derudover følger en enorm samling af forskellige klasser, der giver udvikleren enorme muligheder.

.NET framework


.NET giver gode muligheder for integration af andre programmeringssprog, end de officielle (VB.NET, C++, C#, JScript .NET) Dette betyder at du kan arve fra klasser, tage fordel af polymorfisme og meget andet på tværs af forskellige sprog. .NET frameworket muliggøre dette ved hjælp af Common Type System (CTS) specifikationen, som alle .NET komponenter må overholde. Dette kommer fx til udtryk i, at en klasse i Visual Basic og C# vil opføre sig på samme måde, nemlig efter CTS. Et andet eksempel: C++ understøtter arv fra flere klasser, men CTS tillader kun arv fra en klasse. Visual C++ compileren vil derfor brokke sig, såfremt det forsøges at lave ar v fra flere klasser. Alt dette betyder at forskellige .NET sprog vil opføre sig nogenlunde ens, og gør det muligt at integrere nye sprog.
Foreløbigt består .NET frameworket af:
- Fire officielle sprog. C#, VB.NET, C++ og JScript.NET
- Common Launge Runtime (CLR), en objekt orienteret platform for udvikling til Windows og web udvikling.
- En masse andre klasser, samlet kalder Framework Class Libary (FCL)

En tegning siger mere end tusinde ord.



Lige over selve styresystemet, ligger CLR som den vigtigste del af frameworket. Det er her, selve programmerne bliver afviklet. Over CLR ligger Framework Base klasserne, der udgør den basale del af FCL. Det er her IO, string manipultaion, netværks kommunikation, thread behandling og meget mere befinder sig. Efter dette har vi klasserne til Data og XML. Her får du mulighed for at bruge SQL til at kommunikere med databaser, og klasser til behandling af XML dokumenter.
Web forms og Windows forms sørger for Rapid Application Devolpment, hvor du kan trække et objekt hen på en form, klikke på det og skrive koden.

MSIL


Med .NET, bliver programmer ikke direkte lavet om til maskinkode. De bliver kompilet til Microsoft Intermediate Launge (MSIL), som CLR kan køre. Det er ligemeget om du skriver din kode I C# eller VB.NET, MSIL koden vil stort set være den samme. Når dit program så skal køre, bruges Just In Time (JIT) kompileren, der laver MSIL om til maskinkode. Navnet Just In Time, hentyder til hvordan kompileren virker. Hele programmet oversættes ikke på en gang, men kun de stumper af koden der skal bruges. JIT kompileren gemmer naturligvis koden der oversættes, så den kan bruges igen. Derfor vil en .NET aplikation bliver hurtigere, desto længere tid den har kørt, fordi den samme kode muligvis bliver brugt igen.

Visual Studio .NET: VB.NET, C#, C++, Jscript


Microsofts udviklingsværktøj Visual Studio .NET indeholder allerede kendte sprog i nye versioner, samt et nyt sprog C#. Men VS.NET er ikke blot en opgradering af det gamle Visual Studio .NET. Selvom sprogene allerede eksistere, bygger de nu alle på .NET frameworket der tilføjer nye muligheder. Det betyder for eksempel for Visual Basics vedkommende, at det langt om længe er blevet ægte objektorienteret, har fået ordentlig understøttelse af tråde og meget, meget mere.

Internet udvikling


Internetbaseret udvikling er blevet en væsentlig del af mange organisationers strategiske satsninger, men desværre har det været svært og meget ressourcekrævende at lave browser-baserede Internet applikationer, der funktionalitets- og kvalitetsmæssigt har kunnet leve op til, hvad man kender fra traditionelle klient/server applikationer.
Microsoft har med ASP.NET lavet en udviklingsmodel, hvor det i højere grad end tidligere er blevet transparent, hvilken type klient applikationen retter sig imod. Selv om udviklingsmodellen for ASP (Active Server Pages) med .NET frameworket er blevet væsentlig mere moden, er det dog stadig nødvendigt at have viden om Internet teknologier for at kunne lave Internet applikationer af høj kvalitet.

Hvad er resultatet ?


Som udvikler har vi fået et en masse nye muligheder, som kan bruges til udvikling af stabile og funktionsdygtige applikationer. Det kræver selvfølgelig at du sætter dig grundigt ind i frameworket, og forstår begreberne objektorienteret og XML. Men mulighederne er som sagt rigtig gode, og jeg glæder mig til mange dejlige kode timer med VS.NET

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 (13)

User
Bruger #479 @ 16.12.03 15:15
Well, artikel vandt konkurrencen, men... Den burde nok have været lidt længere :) Regner med at tilføje et par ting til den. Idér, ros og ris er meget velkommne.
User
Bruger #3530 @ 16.12.03 17:14
bravo
User
Bruger #2959 @ 16.12.03 19:34
Hvordan kan man bruge Frameworket sammen med C++ ? Men en god artikel! Dog lidt kort...
User
Bruger #479 @ 16.12.03 19:47
Chadi, du har ret i at jeg nok bør vise, hvordan noget af det kan bruges.
User
Bruger #2730 @ 17.12.03 11:30
Det undrer mig at du har skrevet en så teknisk (og næsten korrekt formuleret) artikel omkring .NET frameworket uden at have skills i .NET, uden nogensinde at have svaret på et spørgsmål i .NET forum.... Jeg fornemmer fusk og har på fornemmelsen at dette er taget fra en lærebog i .NET eller på anden vis taget fra andet end fri erindring.
User
Bruger #846 @ 17.12.03 20:40
Brian: Jesper kan jo sagtens i henhold til konkurrencen fået lyst til at lære om .NET, og udfra det han har lært, skrevet en artikel.
Lad os holde os på det demokratiske niveau hvor man er uskyldig indtil det modsatte er bevist, tak :-)

Derudover kan man jo ikke vælge .NET som teknolog i ens profil, da dette er meget omfattende; ASP.NET, VB.NET, C#, m.v.
Dette ved du jo også nu du har læst artiklen :-)
Jeg kan se at han har VB, om det så er i .NET sammenhæng er vel egentlig underordnet, Jesper har skrevet en flot artikel.
User
Bruger #2730 @ 18.12.03 15:39
Helt sikkert en flot artikel, men VB er nu engang IKKE det samme som VB.NET. Det ved du selvfølgelig også efter at have læst artiklen. Jeg har arbejdet professionelt med .NET teknologien i lidt over et år, så jeg ved udmærket hvad .NET står for. Jeg udtrykte også blot min undren.... emne uddebatteret...
User
Bruger #884 @ 03.01.04 16:41
Du kan sagtens bruge C++ i .NET. Der er flere måder at benytte C++ på enten kan man gøre brug af managed C++, unmanaged c++ ("almindelig" c++) desuden har man også mulighed for at wrappe sin eksisterende c++ kode ind i en DLL og anvende den. Den store forkromede måde er at anvende C++ via COM. Det er ret nemt i .NET, da der eksisterer en RCW - Runtime Callable Wrapper der sørger for type konvertering. Sidstnævnte vil sikkert i nogle tilfælde være overkill, og en alm dll der linkes med er ofte fint. Så jo C++ kan fint anvendes sammen med .NET
User
Bruger #4568 @ 07.03.04 18:20
SKIDE GODT!
User
Bruger #5789 @ 17.05.04 21:23
Ret godt...

Brian.. hvis det er fra en bog, er det en lorte bog... ingen bog skriver Common launge Runtime 2 gange... :) hehe

Men I dont give a fuck, om den er rippet eller ej.. det er fint fortalt !

4 point fra mig !
/Jokke
User
Bruger #4684 @ 29.07.04 22:51
Flot!
Jeg er lige startet med at bruge .NET, og nu er jeg blot blevet endnu mere sikker på hvad forskellen er :D
User
Bruger #6641 @ 24.10.04 12:07
jeg ved stadig ikke hvad .NET er
User
Bruger #13669 @ 08.06.08 16:26
jeg fandt endelig us af havd .NET er, og tror også jeg fandt ud af hvad forskellen på et framework, og at API er.

så det er bare NICE!
Du skal være logget ind for at skrive en kommentar.
t