Nyelvek és fordítók
A Microsoft.NET rendszer többféle programozási nyelven is programozható - feltéve, ha az adott programozási nyelvhez van olyan fordítóprogram (compiler), amely alkalmazza a Common Language Specification elveit és ajánlásait, és képes a Microsoft.NET rendszer virtuális kódjára fordítani.
Nagyon sok ilyen programozási nyelv létezik. A Microsoft által direkt támogatott nyelvek a Visual Basic, J# (Dzsí-sarp), C# (Szí-sarp), Visual C++.
Egyéb cégek, és társaságok által készített fordítóprogramok segítségével lehetőség van például Ada, Cobol, Eiffel, Haskell, Perl, PhP, Python, SML, Delphi nyelveken is Microsoft.NET rendszerben futó alkalmazásokat készíteni.
Framework és verziói
A Microsoft.NET komplex futtató rendszert Microsoft.NET Framework-nek hívják. Ezt minden számítógépre fel kell telepíteni, amelyen .NET alapú alkalmazást kívánunk futtatni.
A Framework első változata az 1.0 verziószámot kapta. Ezt hamarosan felváltotta az 1.1-es verzió, melyben nagy áttörés nem volt jellemző.
A Framework 2.0-ás verzió magával hozott egy új, ügyesebb C# fordítót is, valamint jelentős újításokat a WEB alkalmazások készítésben.
A 3.0-ás verzió 2006-ban jelent meg rengeteg új technológiával. Ezt a 3.5-ös verzió követte, majd a 4.0-ás verzió is elérhető 2010-től.
A Framework-ot nem csak számítógépeken lehet telepíteni, hanem okos telefonokon, PDA-kon is, így lehetővé válik ezen eszközökre is .NET-es alkalmazások fejlesztése. Ezen eszközökre egy speciális változat, a .NET Compact Framework telepítendő, mely kisebb méretű, és funkcionalitásban is csökkentett képességű.
Common Language Runtime réteg gyakorlatilag egy processzor-szimulátor, mely az általa kezelt virtuális mikroprocesszor virtuális gépi kódjára lefordított programokat képes futtatni. Részét képezi egy GC (Garbage Collector, szemétgyűjtő), amely a nem használt memóriaterületeket felfedezi és felszabadítja, valamint részét képezi egy JIT Compiler (Just In Time Compiler, csak a megfelelő időben fordító) is, amely a futó programot 'röptében', a memóriában átfordítja az adott számítógép konkrét mikroprocesszorának konkrét gépi kódjára, így a virtuális gépi kód futás közben átalakul gépi kódra, és már teljes sebességgel képes futni. Továbbá részét képezi egy bonyolult jogosultsági rendszert kezelő rész, amely eldönti, hogy a program kódjának milyen tevékenységeket szabad végrehajtania (ez utóbbi többek között a vírusok terjedését is hivatott megelőzni).
A Base Class Library egy Objektum Orientált szervezésű API réteg a Microsoft.NET rendszerben. Fizikailag több ún. assembly-ből (.DLL) áll. Gyakorlatilag hatalmas eljárás és függvénygyűjteménynek tekinthető, melyet a fejlesztők felhasználhatnak, jelentősen lerövidítve a fejlesztési időt. Ezen eljárások és függvények osztályokba vannak szervezve, az osztályok pedig névterekbe, hogy fastruktúra-szerű áttekinthető rendszert alkosson.
Az ADO.NET és XML réteg az adattárolásért felelős eljárások és függvények gyűjteménye.
Az ADO.NET-net keresztül az adatbázis-kezelés valósítható meg, jellemzően szabványos SQL szervereken keresztül. Ezt használjuk, ha nagy mennyiségű adatot kell gyorsan és hatékonyan kezelnünk.
Az XML egy (általában) helyi szöveges file-ban tárolt adatok kezelését jelenti. Ezen adatok a file-on belül áttekinthető, strukturált szervezésű formában jelennek meg. Egy XML file-ban tetszőleges struktúrát alakíthatunk ki, és elvileg nagy mennyiségű adatot is tárolhatunk benne.
A Windows Forms réteg tartalmazza azokat az eszközöket (eljárások, függvények, osztályok), amelyek segítségével szabványos kinézetű grafikus kezelőfelületű programokat készíthetünk menüvel, nyomógombokkal, jelölőnézettekkel, stb.
Az ASP.NET és WEB réteg tartalmazza azokat az eszközöket (eljárások, függvények, osztályok), amelyek segítségével WEB-es felületű alkalmazásokat készíthetünk.
Ezen programok valamely Web Szerveren kerülnek tárolásra, és a felhasználó egy Browser-en keresztül (pl. Internet Explorer) tölti le, és kezeli a programot.
Az ASP az Active Server Pages rövidítése.
A Common Language Specification (röv. CLS) szabályoknak egy olyan halmaza, amely leírja azokat az alapvető elképzeléseket és normákat, azaz a jelölési rendszert, melyhez a programozási nyelveknek illeszkedniük kell.
Mivel a Microsoft.NET rendszerben mindegy, hogy milyen nyelven programozunk, egyik programozási nyelven megírt eljárást, függvényt a másik nyelvből is meg lehet hívni, lehet használni. Ez csak akkor valósítható meg, ha a nyelvek egymással is megegyeznek bizonyos alapvető elvekben, mint pl. az alapvető típusok és azok ábrázolása a memóriában (Int, Double, String, stb.), a tömbök és rekordok, ábrázolása és kezelése, stb.