.NET Framework — bu kodning bajarilishini boshqaruvchi Common Language Runtime (CLR) va ilovalarni yaratish uchun sinflarning boy kutubxonasini ta’minlovchi Base Class Library (BCL) larni o’z ichiga olgan ishlab chiqish platformasi.
Microsoft dastlab .NET Frameworkni kross-platform imkoniyatiga ega bo’lishini rejalashtirgandi, biroq Microsoft uni Windows bilan juda zo’r ishlashini amalga oshirish uchun kuchini sarfladi.
.NET Framework 4.5.2 dan boshlab u Windows operatsion tizimining rasmiy komponenti hisoblanadi.
Komponentlar o’zlarining asosiy mahsulotlari bilan bir xil qo’llab-quvvatlovga ega, shuning uchun 4.5.2 va undan keyingilari o’rnatilgan Windows operatsion tizimning yashash davri siyosatiga amal qiladi. .NET Framework bir milliarddan ziyod kompyuterlarda o’rnatildi, shuning uchun unda iloji boricha kamroq o’zgarishlar bo’lishi kerak. Hatto bug(qurtcha) larni tuzatish ham muammolarga olib kelishi mumkin, shunga u kamdan-kam yangilanadi.
.NET Framework 4.0 yoki undan keyingilarida .NET Framework uchun yozilgan kompyuterdagi barcha ilovalar CLRning bir xil versiyasini va Global Assembly Cache (GAC) da saqlangan kutubxonalarni baham ko’radi, bu esa ulardan ba’zilariga o’zaro muvofiqlik uchun ma’lum bir versiya kerak bo’lsa, muammolarga olib kelishi mumkin.
Java Java Runtime Environment (JRE) da ishlaydi, C# esa Common Language Runtime (CLR) da ishlashga mo'ljallangan.
Java class-based ya'ni klasslarga asoslangan Ob'ektga yo'naltirilgan til, C# esa Ob'ektga yo'naltirilgan, funksional va komponentlarga yo'naltirilgan til!
Java operatorning yuklanishini qo'llab-quvvatlamaydi, C# esa bir nechta operatorlar uchun operatorning yuklanishini ta'minlaydi.
Java pointers (ko'rsatgichlar)ni qo'llab-quvvatlamaydi, C# esa faqat xavfli rejimda qo'llab-quvvatlaydi.
Javada massivlar Object kutubxonasiga tegishli bo'lsa, C# da massivlar System kutubxonasiga tegishli