„Cod gestionat” este un termen creat de Microsoft® Coproration. Acest termen se referă la codul de program care necesită utilizarea mașinii virtuale Common Language Runtime (CLR) pentru a fi utilizat. Termenul „cod negestionat” este folosit pentru a se referi la codul de program care nu necesită această mașină virtuală.
Common Language Runtime a fost dezvoltat în încercarea de a permite programelor să ruleze pe o varietate de computere și sisteme de operare fără a necesita nicio modificare a codului programului. Pentru a face acest lucru, codul programului de calculator este convertit în bytecode de mașină virtuală. Acest bytecode este apoi interpretat de mașina virtuală CLR și convertit în bytecode pentru computerul specific pe care rulează.
Un cod gestionat poate rula pe orice computer care este echipat cu mașina virtuală CLR. Acest grad ridicat de portabilitate îi oferă un avantaj definitiv față de codul negestionat. Codul negestionat necesită ca programatorii să modifice codul programului pentru a fi utilizat pe diferite mașini. Acest proces nu numai că poate fi lent, dar poate duce și la multe erori de aplicație.
Un alt avantaj pe care îl are un cod gestionat este securitatea sporită. Securitatea unui program realizat cu un cod negestionat se bazează în mare măsură pe implementarea pe care o au făcut-o programatorii. Utilizarea mașinii virtuale CLR ajută la eliminarea unei mari părți a problemelor de securitate de pe umerii programatorilor. Majoritatea problemelor de securitate care pot apărea sunt centrate direct în mașina virtuală în sine. Acest lucru în sine ajută la centralizarea problemelor, făcând mult mai rapidă implementarea corecțiilor de securitate.
Problema dacă un anumit set de cod este cod gestionat sau cod negestionat este extrem de importantă pentru programatorii de computere. Codul gestionat are un grad mai mare de portabilitate, dar această portabilitate necesită instalarea Common Language Runtime pe computerul țintă. Codul negestionat, pe de altă parte, poate fi rulat fără adăugarea CLR.
Există multe avantaje în utilizarea codului gestionat, dar există și câteva dezavantaje. Dezavantajul principal este suprasarcina pe care o necesită utilizarea mașinii virtuale CLR. Diferența dintre viteza cu care rulează codul gestionat și viteza codului negestionat este adesea neglijabilă, dar în unele cazuri, creează o diferență foarte vizibilă în timpul de răspuns al aplicației. Drept urmare, codul negestionat joacă un rol crucial în majoritatea aplicațiilor care necesită un grad ridicat de viteză față de portabilitate.