C# va .Net Core platformasi. C# tilining tuzilishi.
Sherzodbek Farmonov
OTM:
Farg’ona davlat universiteti
Kaferda:
Amaliy matematika va informatika
E-mail:
farmonovsh@gmail.com
Farg’ona - 2020
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
1 / 24
Reja
1
.Net Framework haqida
2
.Net Framework arxitekturasi.
3
.Net Framework versiyalari.
4
C# tilida .NET platformasining roli
5
Adabiyotlar ro’yhati.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
2 / 24
.Net Framework haqida.
.NET (”dot net” deb o’qiladi) yoki .NET Framework bu dasturiy
ta’minot platformasidir. Tasavvur qiling siz biror video faylni qayta
ishlamoqchisiz. Mazkur holatda agar kompyuteringizdagi operatsion
tizimda kodek o’rnatilmagan bo’lsa, u holda siz video fayllari bilan ishlay
olmaysiz. Bunday holda videofayl - .Net texnologiyasidan foydalanib
yozilgan dastur, kodek esa Microsoft .Net Frameworkning o’zi.
Umuman olganda, kompyuter platformasi - bu turli xil hisoblash
tizimlari uchun asos bo’lib xizmat qiladigan texnik yoki dasturiy
ta’minotdir. Misol uchun kompyuterning operatsion tizimini dasturlash
platformasi sifatida ko’rsatishimiz mumkin. C# (”si sharp” deb o’qiladi)
dasturlash tili aynan .NET platformasida ishlash uchun yaratilgan.
Hulosa:
.NET Framework mobil va web-dasturlardan tortib, to ish stoli
dasturlariga qadar barcha turdagi dasturlarni yaratish uchun keng qamrovli
dasturlash modelini o’z ichiga oladi.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
3 / 24
.Net Framework arxitekturasi.
.Net Framework platformasi ikki qismdan iborat:
1. Common Language Runtime (CLR) - dasturlash tillarining umumiy
spetsifikatsiyasi.
Bu .NET Framework platformasida kutubxona va kompilyator
yaratuvchilariga boshchilik qiluvchi konstruktsiyalar va cheklovlar to’plami.
CLS asosida qurilgan kutubxonalardan CLSni qo’llab-quvvatlaydigan har
qanday dasturlash tilida foydalanish mumkin. CLS asosida dasturiy
ta’minot yaratuvchi tillar (shu jumladan Visual C#, Visual Basic, Visual
C++) bir-biri bilan integratsiyalashishi mumkin.
Hulosa:
CLS - Microsoft .NET platformasidagi tillararo aloqaning
asosi.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
4 / 24
CLRning asosiy vazifalari:
kodlarni boshqarish (yuklab olish va bajarish).
ob’yektlarni ajratishda xotirani boshqarish, dastur xotirasini izolyatsiya
qilish.
kod xavfsizligini tekshirish, oraliq tilni mashina kodiga aylantirish.
metama’lumotlarga kirish (kengaytirilgan tipdagi ma’lumotlar),
istisnolardan, shu jumladan tillararo istisnolardan foydalanish.
boshqariladigan va boshqarilmaydigan kodlar o’rtasidagi o’zaro
bog’liqlikni ta’minlash.
turli qo’shicha xizmatlarni qo’llab-quvvatlash.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
5 / 24
Asosiy tushunchalar
MSIL yoki IL(Microsoft Intermediate Language)
Protsessordan mustaqil ravishda mashina kodiga aylantirilishi mumkin
bo’lgan ko’rsatmalar to’plami.
JIT (Just In Time - kerakli vaqtda) kompilyatori
IL kodini tarjima qilish JIT kompilyatori tomonidan amalga oshiriladi.
CLR tomonidan kerak bo’lganda faollashtiriladi va protsessor tomonidan
bajariladi. Bunday holda, JIT kompilyatorining natijalari RAMda saqlanadi.
Tarjima qilingan IL kodining fragmenti va unga mos keladigan xotira
bloki o’rtasida bog’lanish o’rnatiladi. Bu esa CLR-ga JIT kompilyatoriga
takroriy murojaatni qilmasdan, boshqaruvni ushbu xotira blokida yozilgan
protsessor ko’rsatmalariga o’tkazishga imkon beradi.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
6 / 24
CLR
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
7 / 24
Asosiy tushunchalar
CTS (Common Type System)
Barcha mumkin bo’lgan ma’lumotlar tiplari va dasturiy kostruksiyalar
tuzilmasi. CTS ushbu sub’ektlarning bir-biri bilan o’zaro munosabatlari va
ular .NET metama’lumot formatida qanday aks etishini ko’rsatadi.
Tushunish kerakki, .NETga mos keladigan alohida olingan dasturlash tili
CTS spetsifikatsiyasi bilan belgilangan barcha funktsiyalarni o’zida aks
ettirmasligi mumkin, shuning uchun umumiy til spetsifikatsiyasi degan
tushuncha kiritilgan.
CLS (Common Language System)
Barcha .NET dasturlash tillari qo’llab-quvvatlashi kerak bo’lgan
umumiy tiplar va dasturiy konstruktsiyalarni tavsiflovchi spetsifikatsiya.
Demak, agar dasturchi yaratgan .NET tiplari faqat CLS-ga mos
xususiyatlarga ega bo’lsa, u holda bu tiplar .NET-ni qo’llab-quvvatlaydigan
barcha tillar tomonidan ishlatilishi mumkin.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
8 / 24
.Net Framework arxitekturasi.
2. Framework Class Library (FCL) - Framework sinf kutubxonalari
Microsoft .NET platformasi tarkibiga kiruvchi sinflar, interfeyslar va
tip tizimlari (qiymat turlari)ning CLS mos keladigan ob’yektga
yo’naltirilgan kutubxonasi. Ushbu kutubxona tizimning funktsional
imkoniyatlaridan foydalanishni ta’minlaydi va .NET dasturlari,
komponentlari, boshqaruv elementlarini ishlab chiqish uchun asos bo’lib
xizmat qiladi. FCL da ma’lumotlar bazalari, tarmoq, kirish / chiqish,
fayllar, foydalanuvchi interfeysi va boshqalar bilan ishlash uchun ko’plab
komponentlar mavjud. Bu dasturchiga past darajadagi dasturlash bilan
shug’ullanmasdan, balki tayyor sinf kutubxonalaridan foydalanish imkonini
beradi.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
9 / 24
FCL sinf kutubxonasining muhim tarkibiy qismlari:
1. Windows Forms
Dasturiy ta’minotning grafik interfeysi bilan ishlashga xizmat qiladi.
Windows Forms odatda API (”api” deb o’qiladi) asosida ishlaydi. API
(Application Programming Interface) - bu amaliy dasturlash interfeysining
qisqartmasi. Ushbu interfeys katta dasturiy strukturalarni o’z ichiga olib,
bu ularni ma’lum bir dastur uchun sozlash orqali dasturlashda ko’p vaqt va
mehnat talab qiladigan dasturlash jarayonini avtomatlashtirishga imkon
beradi.
2. ADO.NET
Ma’lumotlarga kirishni ta’minlaydi. U asosan ma’lumotlar bazalari
bilan ishlashda qo’llaniladi.
3. ASP.NET
Web-saytlar, web-ilovalar va web-xizmatlarni ishlab chiqishda
ishlatiladi.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
10 / 24
FCL sinf kutubxonasining muhim tarkibiy qismlari:
4. Language Integrated Query (LINQ)
.Net dasturlarida SQL sintaksisiga o’xshash so’rovlar tilini amalga
oshirish imkoniyatini yaratadi.
5. Windows Presentation Foundation (WPF)
Bu XAML belgilash tilidan foydalanib grafik interfeys yaratish
tizimidir. WPFning Windows Formsdan farqi DirectX grafika
texnologiyasidan foydalanilishidadir. Bu texnologiya grafikaning apparat
tezlashishi hisobiga dasturiy ta’minotning tezroq ishlashni ta’minlaydi.
Izoh:
XAML (inglizcha eXtensible Application Markup Language) -
ilovalar uchun kengaytiriladigan belgilash tili.
6. Windows Communication Foundation (WCF)
.Net ilovalari o’rtasida ma’lumot almashish uchun yaratilgan tizim
bo’lib, shu asosda taqsimlangan ilovalarni yaratish uchun ishlatiladi.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
11 / 24
.Net Framework versiyalari.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
12 / 24
.Net Framework versiyalari Windows OS bilan o’zaro
bog’liqligi:
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
13 / 24
C# tilida .NET platformasining roli
Ko’pchilik dasturchilar C# deganda odatda .NET platformali
texnologiyalarni (Windows Forms, WPF, ASP.NET, Xamarin) nazarda
tutadilar. Boshqalari esa .NET deganda C#ni tushunishadi. Aslida ular
bir-biriga bo’liq bog’liq bo’lsada, o’zaro farqli jihatlarga ega. C# tili .NET
Framework bilan ishlashga mo’ljallangan maxsus dasturlash tilidir. Lekin
.NET tushunchasi biroz kengroq tushuncha. Microsoft kompaniyasi
asoschisi Bill Geytsning fikriga ko’ra, .NET platformasi Microsoft
kompaniyasi yaratgan eng yaxshi platforma.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
14 / 24
C# tilida .NET platformasining roli
.NET Framework dasturlar ilovalarini yaratish uchun kuchli asosga
ega bo’lib, quyidagi asosiy hususiyatga ega:
Bir nechta tilni qo’llab-quvvatlash.
Platforma Common Language Runtime (CLR)ga asoslangan bo’lib,
buning natijasida .NET bir nechta tillarni qo’llab-quvvatlaydi: C# bilan bir
qatorda VB.NET, C++, F# va .NET bilan bog’langan boshqa tillar
(masalan, Delphi. NET). Kompilyatsiya vaqtida ushbu tillarning istalganida
yozilgan kod Common Intermediate Language (CIL) umulashgan jamlov tili
vositasida .NET platformasi assemblerining bir turi bo’yicha kompilyatsiya
qilinadi. Bu degani dasturchi muayyan sharoitlarda biz bitta ilovaning
alohida modullarini alohida tillarda yaratishi mumkinligini anglatadi.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
15 / 24
C# tilida .NET platformasining roli
Turli platformalarda o’zaro bir qiymatli o’tish.
.NET portativ platforma (ba’zi cheklovlar bilan). Masalan, hozirgi
vaqtda platformaning so’nggi versiyasi - .NET5 ko’pchilik zamonaviy
Windows, MacOS, Linux operatsion tizimlarida qo’llab -quvvatlanadi.
.NET platformasida turli xil texnologiyalardan foydalanib, dasturchi C#
tilida turli xil platformalar - Windows, MacOS, Linux, Android, iOS, Tizen
uchun ilovalar ishlab chiqishi mumkin.
Kuchli sinf kutubxonasi
.NET barcha qo’llab-quvvatlanadigan tillar uchun yagona sinf
kutubxonasini taqdim etadi. Dasturchi C# tili yordamida matn muharriri,
chat yoki murakkab web-saytga yozmoqchi bo’lgan har qanday dasturida
.NET sinf kutubxonasidan foydalanish imkoniyatiga ega.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
16 / 24
C# tilida .NET platformasining roli
Texnologiyalarning xilma-xilligi.
CLR va bazaviy sinflar kutubxonasi dasturchilar ma’lum ilovalarni
yaratish uchun foydalanishi mumkin bo’lgan texnologiyalar to’plamining
asosidir. Masalan, ADO.NET va Entity Framework Core ushbu texnologiya
to’plamidagi ma’lumotlar bazalari bilan ishlashga mo’ljallangan. Odatda
boy interfeysga ega grafik ilovalarni yaratish uchun - WPF va UWP
texnologiyasi, sodda grafik ilovalarni yaratish uchun - Windows Forms,
mobil ilovalarni ishlab chiqish uchun - Xamarin, web - saytlar va web -
ilovalarni yaratish uchun - ASP.NET va boshqalardan foydalaniladi. Bunga
faol rivojlanayotgan va mashhurlik kasb etadigan Blazor - framework
qo’shish mumkin. Blazor tarmoq bilan ishlaydi va server tomonida ham,
mijoz tomonida ham web-ilovalarni yaratishga imkon beradi. Kelajakda u
mobil ilovalar, ehtimol, ish stoli ilovalarini yaratish imkoniyatini yaratar.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
17 / 24
C# tilida .NET platformasining roli
Ishlash qobiliyatining yuqoriligi.
Bir qator testlarda .NET5 web-ilovalari bir qancha toifalar bo’yicha
boshqa texnologiyalar bilan qurilgan web-ilovalardan ustun turadi. .NET 5
ilovalari boshqa ilovalarga qaraganda ancha yuqori ko’rsatkichlarga ega.
Bundan tashqari, C# tili va .NET tizimining o’ziga xos xususiyati
dasturlashdagi axlatlarni avtomatik yig’ishi bilan e’tiborga loyiqdir. Bu
shuni anglatadiki, ko’p hollarda dasturchi C++dan farqli o’laroq xotirani
bo’shatish haqida qayg’urmaydi. Yuqorida aytib o’tilgan umumiy til ish
vaqti (CLR) o’zi axlat yig’uvchini chaqiradi va xotirani tozalaydi. Bu C#
ning katta ustunliklaridan biri hisoblanadi.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
18 / 24
.NET Framework va .NET Core / .NET 5
Ta’kidlash joizki, .NET bu uzoq vaqtdan buyon Windows platformasi
sifatida rivojlanib kelgan .NET Framework platformasidir. 2019 yilda
ushbu platformaning so’nggi versiyasi .NET Framework 4.8 chiqarildi.
U endi rivojlanmaydi.
2014 yildan boshlab Microsoft kompaniyasi boshqa platformalar
uchun mo’ljallangan va eskirgan .NET Framework platformasining
barcha xususiyatlarini o’zlashtirishi va yangi funksiyalar qo’shishi kerak
bo’lgan .NET Core muqobil platformasini ishlab chiqara boshladi.
Keyin Microsoft doimiy ravishda ushbu platformaning bir nechta
versiyalarini chiqardi: .NET Core 1, .NET Core 2, .NET Core 3.
Keyinchalik .NET Core 3.0 ning mantiqiy evolyutsiyasi sifatida .NET
5 platformasi yaratildi.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
19 / 24
.NET Framework va .NET Core / .NET 5
Bundan tashqari, 2004 yilda yaratilgan hamda Linux va MacOS uchun
.NET Framework platformasining opensors versiyasini taqdim etgan
Mono platformasini ham eslatib o’tish lozim. Mono platformasi
yordamida C# tilida turli platformalardan o’zaro bir qiymatli o’tishni
amalga oshirishi mumkin. Mono hali ham ishlatilmoqda. Masalan,
C# yordamida Android va iOS uchun mobil ilovalar yaratish
texnologiyasi Xamarin hanuzgacha Mono platformasidan foydalanadi.
2021 yil 14-sentyabrda chiqarilgan .NET 6 platformasi Mono
platformasini o’z ichiga oladi.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
20 / 24
.Net Core versiyalari.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
21 / 24
c# tilida dastur tuzilishi:
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
22 / 24
Adabiyotlar.
John Paul Mueller, Bill Sempf and Chuck Sphar
.
C# 7.0 :
ALL-IN-ONE
. For dummies. 2019.
Joseph Albahari and Ben Albahari
.
C# 7.0 : IN A NUTSHELL
. 2018.
Andrew Troelsen and Philip Japikse
.
C# 6.0 and the .NET 4.6 Framework
.
2016.
B.I.Paxomov
.
C# dlya nachinayushix
. 2014.
Herbert Schildt
.
C# 4.0. The Complete Reference
. 2011.
M.E.Abramyan
.
Programming Taskbook
. 2007.
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
23 / 24
The End
Sherzodbek Farmonov (FarDU)
.NET arxitekturasi
Farg’ona - 2020
24 / 24
Document Outline
Dostları ilə paylaş: |