Vad är en hanterad kod?
"Hanterad kod" är en term skapad av Microsoft® Coproration. Denna term hänvisar till programkod som kräver användning av den virtuella maskinen Common Language Runtime (CLR) för att kunna användas. Uttrycket "okontrollerad kod" används för att hänvisa till programkod som inte kräver denna virtuella maskin.
Common Language Runtime utvecklades i ett försök att låta program köras på olika datorer och operativsystem utan att kräva några ändringar i programkoden. För att göra detta konverteras datorprogramkod till virtuell maskinbytkod. Denna bytekod tolkas sedan av den virtuella CLR-maskinen och konverteras till bytkod för den specifika dator som den kör på.
En hanterad kod kan köras på alla datorer som är utrustade med den virtuella CLR-maskinen. Denna höga grad av portabilitet ger den en definitiv fördel jämfört med okontrollerad kod. O hanterad kod kräver att programmerare ändrar programkoden för användning på olika maskiner. Denna process kan inte bara vara långsam, den kan också leda till många applikationsfel.
En annan fördel som en hanterad kod har är dess förbättrade säkerhet. Säkerheten för ett program som har skapats med en okontrollerad kod förlitar sig starkt på implementeringen som programmerarna gjorde. Användningen av den virtuella CLR-maskinen hjälper till att ta en stor del av säkerhetsproblem från programmerarnas axlar. De flesta säkerhetsproblem som kan uppstå är centrerade direkt i själva den virtuella maskinen. Detta i sig hjälper till att centralisera frågor, vilket gör det mycket snabbare att implementera säkerhetsuppdateringar.
Frågan om huruvida en viss uppsättning kod hanteras kod eller okontrollerad kod är oerhört viktigt för datorprogrammerare. Hanterad kod har en högre grad av portabilitet, men denna portabilitet kräver att Common Language Runtime installeras på måldatorn. O hanterad kod kan å andra sidan köras utan tillägg av CLR.
Det finns många fördelar med användningen av hanterad kod, men det finns också flera nackdelar. Den huvudsakliga nackdelen är den omkostnad som användningen av den virtuella CLR-maskinen kräver. Skillnaden mellan hastigheten med vilken hanterad kod körs jämfört med hastigheten på ostyrd kod är ofta försumbar, men i vissa fall skapar det en mycket märkbar skillnad i applikationens responstid. Som ett resultat spelar okontrollerad kod en avgörande roll i de flesta applikationer som kräver en hög grad av hastighet över portabilitet.