Hva er en administrert kode?
"Managed code" er et begrep opprettet av Microsoft® Coproration. Dette uttrykket refererer til programkode som krever bruk av den virtuelle maskinen Common Language Runtime (CLR) for å kunne brukes. Begrepet "ikke-administrert kode" brukes for å referere til programkode som ikke krever denne virtuelle maskinen.
Common Language Runtime ble utviklet i et forsøk på å tillate programmer å kjøre på en rekke datamaskiner og operativsystemer uten å kreve endringer i programkoden. For å gjøre dette, blir dataprogramkoden konvertert til virtuell maskinkodekode. Denne bytekoden tolkes deretter av den virtuelle CLR-maskinen og konverteres til bytekode for den spesifikke datamaskinen den kjører på.
En administrert kode kan kjøres på alle datamaskiner som er utstyrt med den virtuelle CLR-maskinen. Denne høye graden av portabilitet gir den en endelig fordel fremfor ubehandlet kode. Ubehandlet kode krever at programmerere endrer programkoden for bruk på forskjellige maskiner. Denne prosessen kan ikke bare være treg, den kan også føre til mange applikasjonsfeil.
En annen fordel som en administrert kode har, er den forbedrede sikkerheten. Sikkerheten til et program laget med en ubehandlet kode er avhengig av implementeringen som programmererne gjorde. Bruken av den virtuelle CLR-maskinen hjelper til med å ta en stor del av sikkerhetsproblemer fra skuldrene til programmerere. De fleste sikkerhetsproblemer som kan oppstå, er direkte sentrert i selve den virtuelle maskinen. Dette i seg selv er med på å sentralisere problemer, og gjør det mye raskere å implementere sikkerhetsoppdateringer.
Spørsmålet om hvorvidt et bestemt sett med kode er administrert kode eller ikke-administrert kode, er ekstremt viktig for programmerere. Administrert kode har en høyere grad av portabilitet, men denne portabiliteten krever at Common Language Runtime blir installert på måldatamaskinen. Ubehandlet kode kan derimot kjøres uten tillegg av CLR.
Det er mange fordeler med bruken av administrert kode, men det er også flere ulemper. Den primære ulempen er den overhead som bruken av den virtuelle CLR-maskinen krever. Forskjellen mellom hastigheten som den administrerte koden kjører mot hastigheten på ubehandlet kode er ofte ubetydelig, men i noen tilfeller skaper det en veldig merkbar forskjell i responstid for søknad. Som et resultat spiller ikke-administrert kode en avgjørende rolle i de fleste applikasjoner som krever høy grad av hastighet over portabilitet.