A Microsoft.NET
2002-ben a Microsoft új programozási platformot indított el, melyet Microsoft.NET-nek neveztek (röviden csak .NET, dotNet) el. ()
A Microsoft.NET egy virtuális futtatórendszerrel felszerelt programozási platform. Ezen platform neve Microsoft.NET Framework, jelenleg (2010) a 4.0-ös verziószámmal rendelkezik, és teljesen ingyenesen letölthető a Microsoft honlapjáról.
A Microsoft célja a platformmal: a programozóknak ne kelljen minden egyes programozási platformra más-más programozási nyelveket használni. A Microsoft.NET-ben lehet Windows interface-el rendelkező programok fejlesztése csakúgy, mint WEB alkalmazások fejlesztése, de mobil eszközök (PDA) programozása is ugyanebben a környezetben végezhető el.
Ma már több mint 50 programozási nyelvhez készült .NET fordító, tehát a programozási feladatokat a programozók széles választékú nyelven is megoldhatják.
A .NET Framework alapját a CLI vagyis a Common Language Infrastructure képezi. Ez nem más mint azon szabályok halmaza, amelyek leírnak egy nyelvfüggetlen fejlesztői környezetet, a futtatókörnyezetet, típusrendszert stb. A .NET Framework implementációját CLR-nek, Common Language Runtime-nak hívják. A CLI maga is négy fő részre oszlik.
Common Language Specification
A CLS a CLI része. Azokat a szabályokat írja le, amelyeket a CLI kompatibilis nyelveknek be kell tartania. Érdekesség, hogy a legtöbb .NET nyelv - pl. a C# - tartalmaz olyan elemeket, amelyek nem felelnek meg a CLS specifikációnak (pl. a CLS nem engedi meg ulong típusú paraméterek használatát, míg a C# igen).
Common Type System
A CTS a CLI azon része, amely a típusokat, azok memóriabeli reprezentációját illetve egymással való interakcióját írja le. A .NET minden nyelve ugyanazt a típusrendszert használja, bár az egyes típusok megnevezése nyelvfüggő (de végeredményben mindig ugyanarról a típusról van szó).
Common Language Runtime
A CLR vagy VES (Virtual Execution System) a CLI nyelven megírt programok betöltéséért és végrehajtásáért felel. Felelősséggel tartozik továbbá a memóriamenedzsmentért, kivételkezelésért illetve a kódbiztonságért is (hogy a fontosabbakat említsük).
Common Intermediate Language
A CIL (korábban MSIL) egy ún. köztes kód. Minden CLI nyelvben megírt program erre a kódra fordítódik le (ellentétben a hagyományos nyelvek natív kódjától). Ezt a kódot a tényleges futtatáskor az ún. jitter (Just in time compiler) fordítja le natív kódra, amelyet a processzor már tud kezelni. A CIL hasonlít a Java bytekódjára.
C#
A C# (kiejtése: szí-sárp) a Microsoft által a .NET keretrendszer részeként kifejlesztett objektumorientált programozási nyelv. A nyelv alapjául a C++ és a Java szolgált. A Microsoft sorra vette a programozási nyelvek erősségeit, és hibáikat(mik azok a hibák, hibalehetőségek, amelyek a programozót zavarhatják).
A későbbiekben ezt a nyelvet úgy fejlesztették tovább, hogy meglegyen az egyensúly a programozó nyelvi szabadsága és a gyors alkalmazásfejlesztés lehetősége között.
A C# az a programozási nyelv, ami a legközvetlenebb módon tükrözi az alatta működő, minden .NET programot futtató .NET keretrendszert, valamint erősen függ is attól: nincsen nem menedzselt, natív módban futó C# program. A primitív adattípusai objektumok, a .NET típusok megfelelői. Szemétgyűjtést használ, valamint az absztrakcióinak többsége (osztályok, interfészek, delegáltak, kivételek…) a .NET futtatórendszert használja közvetlen módon.
A C vagy C++ nyelvhez hasonlítva a C# több korlátozást és továbbfejlesztést is tartalmaz. A lehetőségei közül néhány:
A C# megtanulásával, kevés továbbképzéssel tudunk programozni C++, Java, PHP és egyéb C alapú nyelven.
Mono
A Mono Project egy nagyrészt kompatibilis nyílt forráskódú C# fordítót állított elő, ami lehetővé tette a C# kódok futtatását Linux, vagy Macintosh rendszereken is.
Elég szépen terjed, főleg a Linuxon, bár hiányosságai mindig is lesznek a .NET-tel szemben (ez így természetes). Jelenleg a 2.10-nél járnak de érkezni fog a 3.0 is.