„Valdomas kodas“ yra terminas, kurį sukūrė „Microsoft® Coproration“. Šis terminas reiškia programos kodą, kuriam norint naudoti reikia naudoti bendrosios kalbos vykdymo laiko (CLR) virtualią mašiną. Terminas „nevaldomas kodas“ vartojamas nurodant programos kodą, kuriam nereikia šios virtualios mašinos.
Common Language Runtime buvo sukurta siekiant leisti programoms paleisti įvairiuose kompiuteriuose ir operacinėse sistemose nereikalaujant jokių programos kodo pakeitimų. Norėdami tai padaryti, kompiuterio programos kodas paverčiamas virtualios mašinos baitų kodu. Tada šį baitinį kodą interpretuoja CLR virtuali mašina ir konvertuoja į baitinį kodą konkrečiam kompiuteriui, kuriame jis veikia.
Valdomas kodas gali būti paleistas bet kuriame kompiuteryje, kuriame yra CLR virtualioji mašina. Šis didelis perkeliamumo laipsnis suteikia jam neabejotiną pranašumą prieš nevaldomą kodą. Nevaldomas kodas reikalauja, kad programuotojai pakeistų programos kodą, kad būtų galima naudoti įvairiose mašinose. Šis procesas gali būti ne tik lėtas, bet ir gali sukelti daug programų klaidų.
Kitas valdomo kodo pranašumas yra padidintas saugumas. Programos, sukurtos naudojant nevaldomą kodą, saugumas labai priklauso nuo programuotojų įdiegto įgyvendinimo. CLR virtualios mašinos naudojimas padeda nuimti didelę dalį saugumo problemų nuo programuotojų pečių. Dauguma saugumo problemų, kurios gali kilti, yra tiesiogiai susijusios su virtualia mašina. Tai savaime padeda centralizuoti problemas, todėl saugos pataisos įdiegiamos daug greičiau.
Kompiuterių programuotojams labai svarbus klausimas, ar tam tikras kodo rinkinys yra valdomas kodas, ar nevaldomas kodas. Valdomas kodas turi didesnį perkeliamumo laipsnį, tačiau šiam perkeliamumui reikia, kad tiksliniame kompiuteryje būtų įdiegta Common Language Runtime. Kita vertus, nevaldomas kodas gali būti paleistas nepridedant CLR.
Valdomo kodo naudojimas turi daug privalumų, tačiau yra ir keletas trūkumų. Pagrindinis trūkumas yra pridėtinės išlaidos, kurių reikia norint naudoti CLR virtualią mašiną. Skirtumas tarp greičio, kuriuo valdomas kodas veikia, ir nevaldomo kodo greičio dažnai yra nereikšmingas, tačiau kai kuriais atvejais tai sukuria labai pastebimą programos atsako laiko skirtumą. Dėl to nevaldomas kodas vaidina lemiamą vaidmenį daugumoje programų, kurioms reikalingas didelis greitis, o ne perkeliamumas.