Ada dua komponen utama dalam Framework .NET yaitu Common Language Runtime (CLR) dan .NET Framework Class Library. Common Language Runtime (CLR) adalah pondasi utama dari Framework .NET. CLR merupakan komponen yang bertanggung jawab terhadap berbagai macam hal, seperti bertanggung jawab untuk melakukan managemen memory, melakukan eksekusi kode, melakukan verifikasi terhadap keamanan kode, menentukan hak akses dari kode, melakukan kompilasi kode, dan berbagai layanan system lainnya. Dengan adanya fungsi CLR ini, maka aplikasi berbasis .NET biasa juga disebut dengan managed code, sedangkan aplikasi di luar itu biasa disebut dengan un-managed code. CLR akan melakukan kompilasi kode-kode aplikasi kita menjadi bahasa assembly MSIL (Microsoft Intermediate Language). Proses kompilasi ini sendiri dilakukan oleh komponen yang bernama Just In Time (JIT). JIT hanya akan mengkompilasi metode metode yang memang digunakan dalam aplikasi, dan hasil kompilasi ini sendiri di chace di dalam mesin dan akan dikompile kembali jika memang ada perubahan pada kode aplikasi kita.
.NET Framework Class Library atau sering juga disebut Base Case Library (BCL) adalah koleksi dari reusable types yang sangat terintegrasi secara melekat dengan CLR. Class library bersifat berorientasi terhadap objek yang akan menyediakan types dari fungsi-fungsi managed code. Hal ini tidak hanya berpengaruh kepada kemudahan dalam hal penggunaan, tetapi juga dapat mengurangi waktu yang diperlukan pada saat eksekusi. Dengan sifat tersebut, maka komponen pihak ketiga akan dengan mudah diaplikasikan ke dalam aplikasi yang dibuat. Dengan adanya BCL ini, maka kita bisa menggunakan Framework .NET untuk membuat berbagai macam aplikasi, seperti :
  • · Aplikasi console
  • · Aplikasi berbasis windowd (Windows Form)
  • · Aplikasi ASP.NET (berbasis web)
  • · Aplikasi Web Services XML
  • · Aplikasi berbasis Windows Services
Jika kita membuat sekumpulan Class untuk membuat aplikasi berbasis windows, maka Class-Class itu bisa kita gunakan untuk jenis aplikasi lain, seperti aplikasi berbasis web (ASP.NET).