.NET Framework

**.NET Framework** — 2002-yilda Microsoft tomonidan chiqarilgan dasturiy platformadir. Platforma turli dasturlash tillari: C#, Visual Basic .NET, J# va boshqalar uchun mos Common Language Runtime (CLR)ga asoslangan. CLR funksiyasi ushbu platformadan foydalanadigan har qanday dasturlash tilida mavjud. .NET Framework hozirda.NET sifatida rivojlanmoqda. Bu platformada koʻp dasturlarga umumiy komponentlar va optimizatsiyalangan metodlar bor.

.NET Framework oʻsha paytda mashhur boʻlgan Sun Microsystems (hozirda Oracle kompaniyasiga tegishli) Java platformasiga Microsoftning javobidir.

.NET Framework Microsoft kompaniyasining oʻz mahsuloti hisoblanib, rasmiy ravishda Windows operatsion tizimlarida ishlash uchun moʻljallangan boʻlsa-da, baʼzi boshqa operatsion tizimlarda.NET Framework dasturlarini ishga tushirish imkonini beruvchi mustaqil loyihalar (birinchi navbatda Mono va Portable.NET) mavjud.

Microsoft Silverlight 2.0 versiyasida.NET Frameworkdan koʻp qismlar bor.

## Ishlab chiqish
Platformani ishlab chiqish 1999-yilda boshlangan. Rasmiy ravishda, yangi texnologiyaning ishlab chiqilishi 2000-yil 13-yanvarda, Bill Geyts Microsoft rahbarligining Stiv Balmerga oʻtkazilishini paytida rasman eʼlon qilindi. Shu kuni korporatsiya rahbariyati kompaniya uchun *Next Generation Windows Services* (NGWS, “Windows xizmatlarining yangi avlodi”) deb nomlangan yangi strategiyasini eʼlon qildi. Yangi strategiya foydalanuvchilarga Internetga kirish imkoniga ega simsiz qurilmalardan shaxsiy kompyuteri (PC)da boʻlgani kabi Internet bilan ishlash imkonini berish uchun mavjud va kelajakdagi Microsoft ishlanmalarining yagona toʻplamiga birlashtirish edi.

Oʻsha kuni boʻlib oʻtgan matbuot anjumanida Balmer shaxsiy kompyuterlarining ulkan imkoniyatiga qaramay, korporatsiya keyingi avlod xizmatlarining shaxsiy kompyuter boʻlmagan qurilmalarda ham ishlashi kafolatlanishini taʼminlash muhimligiga urgʻru bergan. Geytsga kelsak, *Patricia Seybold Group* tahlilchisi Enn Tomas Meyns uning soʻzlarini tahlil qilib, kompaniyaga faqat ish kompyuterlariga eʼtibor qaratishdan voz kechib, mobil qurilmalarni ishlab chiqishga oʻtish foyda keltirishini aytdi. Uning fikriga koʻra, Geyts Windows bilan qattiq bogʻlanmagan kompyuterda ishlashning yangi davriga yoʻl ochdi.

Mobil qurilmalarning xotira hajmi kichik boʻlganligi tufayli ilovalarni saqlash va uzatish serverlar tomonidan amalga oshirilishi lozim deb qaralgan, holbuki oʻsha paytda deyarli barcha foydalanuvchi maʼlumotlari va dasturiy taʼminot statsionar kompyuterlarda lokal ravishda saqlangan. Keyin “serverga asoslangan” modelga oʻtish gʻoyasi eng yirik IT kompaniyalar rahbarlari orasida kuchli qoʻllab-quvvatlandi. Misol uchun, Sun Microsystems rahbari Skott Maknili server-mijoz dasturiy taʼminotiga oʻtishda Microsoft Office bilan raqobatlashadigan ofis dasturiy taʼminoti kompaniyasini sotib olganini eʼlon qilgan.

## .NET arxitekturasi
Har qanday qoʻllab-quvvatlanadigan dasturlash tilida yozilgan.NET Framework dasturi birinchi navbatda kompilyator tomonidan.NET Common Intermediate Language (CIL) (ilgari Microsoft Intermediate Language, MSIL) bayt-kodiga tarjima qilinadi. .NET nuqtayi nazaridan, bu *yigʻish* (*assembly*) deb hisoblanadi. Keyin kod Common Language Runtime (CLR) virtual mashinasi tomonidan bajariladi yoki NGen.exe tomonidan maʼlum maqsadli protsessor uchun bajariladigan kodga tarjima qilinadi.

Virtual mashina (VM)dan foydalanish afzalroq, chunki u ishlab chiquvchilarni apparatning oʻziga xos xususiyatlari haqida tashvishlanishdan xalos qiladi. CLR virtual mashinasidan foydalanilganda, oʻrnatilgan *JIT-kompilyator* “shu ondayoq” (just in time) oraliq baytkodni kerakli protsessorning mashina kodlariga aylantiradi. Dinamik kompilyatsiya qilishning zamonaviy texnologiyasi yuqori darajadagi ishlashga erishishga imkon beradi. CLR VM shuningdek, asosiy xavfsizlik, xotira boshqaruvi va istisnolar bilan shugʻullanadi, bu esa ishlab chiquvchiga ishning bir qismini tejaydi.

.NET Framework arxitekturasi Microsoft tomonidan ishlab chiqilgan va ISO va ECMA tomonidan tasdiqlangan Common Language Infrastructure (CLI) spetsifikatsiyasida tavsiflangan va ishlab chiqilgan. CLI.NET maʼlumotlar turlarini, dastur tuzilmasi metamaʼlumotlar formatini, bayt kodini bajarish tizimini va boshqalarni tavsiflaydi.

Barcha qoʻllab-quvvatlanadigan dasturlash tillari uchun mavjud boʻlgan.NET obyekt sinflari Framework Class Library (FCL)da mavjud. FCL tarkibiga Windows Forms, ADO.NET, ASP.NET, Language Integrated Query, Windows Presentation Foundation, Windows Communication Foundation va boshqalar kiradi. FCLʼning yadrosi asosiy sinf kutubxonasi (BCL) deb ataladi.

.NET platformasini quyidagi dasturlar qoʻllab-quvvatlaydi:
* Microsoft Visual Studio (C#, Visual Basic.NET, Managed C++, F#);
* SharpDevelop;
* MonoDevelop;
* Embarcadero RAD Studio (Delphi for.NET); oldingi Borland Developer Studio (Delphi for.NET, C#);
* A# (Ada);
* Zonnon;
* PascalABC.NET;
* JetBrains Rider.

.NET ilovalari matn muharririda kompilyatorni buyruqlar satridan oddiygina chaqirish orqali ham foydalanish mumkin.

Microsoft.NETʼning asosiy gʻoyalaridan biri bu turli tillarda yozilgan dasturiy qismlarning mosligidir. Masalan, Microsoft.NET uchun C++ tilida yozilgan xizmat Delphida yozilgan kutubxonadan sinf usuliga kirishi mumkin; C#ʼda siz Visual Basic.NETʼda yozilgan sinfdan meros boʻladigan sinfni yozishingiz mumkin va C#ʼda yozilgan usul bilan chiqarilgan istisno Delphida amalga oshirilib, ishlov berilishi mumkin. .NETʼdagi har bir kutubxonada (montajda) oʻz versiyasi haqida maʼlumot mavjud boʻlib, bu toʻplamlarning turli versiyalari oʻrtasida yuzaga kelishi mumkin boʻlgan ziddiyatlarni bartaraf etish imkonini beradi.

Microsoft Visual Studio bilan taʼminlangan tillar:
* C#
* Visual Basic.NET
* JScript.NET
* C++/CLI — Managed C ++ ning yangi versiyasi
* F# — VS2010/VS2012/VS2015/VS2017/VS2019 tarkibiga kiritilgan ML dasturlash tillari oilasining aʼzosi.
* J# — oxirgi marta VS2005ʼda kiritilgan

## Manbalar

## Havolalar
* 
* Overview of .NET Framework (MSDN)
* .NET Github repository