.NET (Microsoft): Forskelle mellem versioner

Content deleted Content added
No edit summary
Tilføjede afsnit om hukommelsehåndtering
Linje 25:
 
Der findes en række .NET-programmeringssprog. En række af de 'gamle' programmeringsprog fra Microsoft er kommet i en .NET-version, men der er foretaget store ændringer i sprogene for at de kan bruges i .NET. Det er Microsofts mål, at man skal kunne udvikle i alle programmeringssprog til .NET. Dette foregår konkret ved, at der findes en [[compiler]] for hvert sprog. Alle compilere genererer den samme type bytecode som så kan eksekveres/oversættes af en interpreter (fortolker) (CLR: Common Language Runtime). Frameworket indeholder [[API]] til alt hvad en applikation kan have brug for da det er tanken at alle programmer på Windows i fremtiden (måske bortset fra drivere og andre meget low-level ting) skal været skrevet i .NET.
 
== Hukommelseshåndtering ==
.NET Frameworks [[CLR]] fritager udvikleren for at håndtere hukommelsen (allokering og frigivelse af hukommelse); i stedet varetager det selv hukommelseshåndteringen selvom der ikke er nogen garanti for hvornår ''[[Garbage Collector]]en'' (proces til automatisk frigivelse af hukommelse) vil udføre sin arbejdsopgave, medmindre et eksplicit kald udstedes. Så længe der findes referencer til et [[objekt]] i det instantierede .NET program, vil hukommelseshåndteringen betragte det som værende i brug af CLR. Når der ikke længere findes nogen referencer til et objekt, og det dermed ikke kan tilgås eller anvendes længere, bliver det markeret til indsamling. Objektet optager dog stadig den del af hukommelsen, som er blevet allokeret til det. Selve frigivelsen af hukommelsen sker ikke før hukommelseshåndteringen har været forbi.
.NET's hukommelseshåndtering kører periodisk i en separat tråd fra den som programmet afvikles i, hvor det håndterer alle de ubrugte objekter og genindsamler hukommelsen allokeret til dem.
 
== Perspektiv ==
Før Microsoft skrinlagde det oprindelige [[Visual Basic]] og lagde al vægt ind på .NET-platformen, var [[Visual Basic]] et af de mest udbredte og brugte programmeringssprog. I forbindelse med frigivelsen af .NET diskuterede mange medier, hvor alle disse visual basic-programmører ville søge hen. De kunne følge med .NET, men det ville være som at starte forfra og skulle lære et nyt programmeringssprog, og i så fald kunne de ligeså godt søge i andre retninger, såsom [[Java (programmeringssprog)|Java]] eller tage springet til det mere moderne C#. Microsoft har dog gjort meget for at bringe [[Visual Basic]]-programmørene med over på den nye platform, ved at tilføje mange af de gamle funktionaliteter i sproget til [[Microsoft Visual Studio|Visual Studio .NET 2005]].
 
== .NET og javaJava ==
Microsoft's C# og CLI (Common Language Infrastructure) har mange ligheder med Sun's [[Java (programmeringssprog)|java]] og JVM (Java Virtual Machine). De er konkurrenter og bruger begge en [[virtuel maskine]], der gør det muligt at lave programmer uden at skulle tage højde for med hvilken hardware de skal udføres. Begge bruger deres egen mellemkode, Microsoft kalder deres for Common Intermediate Language ([[CIL]]) mens Sun kalder deres java bytecode. I .NET bliver mellemkoden altid [[compiler|kompileret]] enten lige før den skal udføres (JIT - just-in-time) eller lang tid før ved brug af ngen.exe værktøjet. Med java er det enten fortolket, JIT eller compiled på forhånd. De har begge nogle omfattende klassebiblioteker og der er stor lighed mellem strukturen af klasserne i .NET og [[J2EE]].