Net arxitekturasi


Download 20.29 Kb.
Sana08.01.2022
Hajmi20.29 Kb.
#248052
Bog'liq
1 чиси (6)


Net arxitekturasi

Yozda Professional Developer Conference 2000 da Microsoft dunyoga dasturiy ta'minotni ishlab chiqish uchun yangi yo'lni taklif qiluvchi. net platformasini taqdim etdi. . Net-Internet-tijoratning zamonaviy ehtiyojlariga javob beradigan integratsiyalangan, xizmatga yo'naltirilgan ilovalarni yaratish uchun platforma. Bu siz tez ko'p manbalardan axborot faoliyat veb xizmatlar va ilovalarni qurish imkonini beradi, va platformalar va dasturlash tillaridan mustaqil. Net platformasi Windows operatsion tizimiga bog'liq emas va keyinchalik boshqa operatsion tizimlar uchun amalga oshirilishi mumkin.

Kirish

. Net platformasi ilovalarni ishlab chiqishni osonlashtiradi va kodning ishonchliligini oshiradi. Xususan, u sinf kutubxonasining tillariga betaraf bo'lgan va tillarning chegaralarini kesib o'tadigan ob'ektlarning hayot vaqtini avtomatik boshqarish, istisnolarni qayta ishlash va disk raskadrovka bilan ta'minlaydi.



Umumiy til ish vaqti operatsion tizimning tizim xizmatlariga tayanadi va har qanday zamonaviy dasturlash tilida yozilgan kod bajarilishini nazorat qiladi. Asosiy sinflar majmui ishlab chiquvchilar har qanday dasturlash tilidan foydalanishlari mumkin bo'lgan platforma xizmatlariga kirish imkonini beradi. Umumiy til ish vaqti va asosiy sinflar birgalikda. net platformasining asosini tashkil qiladi. Ushbu arxitektura C ish vaqti, Visual Basic ish vaqti yoki Java virtual mashinasi arxitekturasiga juda o'xshaydi.

. Net shuningdek, yuqori darajadagi xizmatlarni taklif etadi:

-

ADO + XML va SOAP ma'lumotlarini almashish uchun foydalanadigan ADO ning yangi avlodidir



-

ASP + - veb-sahifalarni dasturlash uchun har qanday (. net mos) tilni ishlatishga imkon beruvchi ASP ning yangi versiyasi

-

Win Forms va Web Forms-mahalliy va veb-yo'naltirilgan ilovalar foydalanuvchi interfeysi qurish uchun sinflar majmui. Bundan tashqari, C# ("si Sharp" deb ataladi) -. NET platformasi uchun ilovalarni yaratishga qaratilgan yangi ob'ektga asoslangan til.



Common Language Runtime (CLR)

CLR bajariladigan kodni muayyan xizmatlar to'plamini taqdim etadi. Misol uchun, CLR oqimlarni yaratish va manipulyatsiya qilishni qo'llab-quvvatlaydi. Shuning uchun CLR dan foydalanadigan har qanday til oqimlardan foydalanishi mumkin.

Ish vaqtida CLR kerak bo'lgan kod "boshqariladigan" (boshqariladigan) kod deb ataladi. Ob'ektlarni yaratish va usullarni chaqirish kabi vazifalar uchun javobgarlik CLR-ga yuklanadi. CLR-ga kerak bo'lmagan kod "unmanaged" kodi deb ataladi.

Microsoft.net CLR: C++, C#, Visual Basic (VBScript va Visual Basic for Applications) va JScript uchun kod ishlab chiqaruvchi 4 kompilyatorlarini taqdim etadi. Visual C++ - bu boshqarilmaydigan kodni ishlab chiqaradigan yagona kompilyator. Qolgan kompilyatorlar faqat boshqariladigan kodni ishlab chiqishi mumkin, shuning uchun ushbu tillarda yozilgan kod har doim CLR-ga muhtoj. Bir nechta kompaniyalar ham boshqariladigan kod kompilyatorlarini ishlab chiqaradi. Misol uchun, Rational Java uchun bunday kompilyatorni yaratishni rejalashtirmoqda. Net va CLR xizmatlarining asosiy tushunchalarini ko'rib chiqing

Resurslarni avtomatik boshqarish

Eng tez-tez uchraydigan xatolardan biri shundaki, dastur resurslarni ozod qilmaydi yoki ozod qilinganidan keyin foydalanishga harakat qiladi. CLR resurslardan foydalanishni avtomatik ravishda kuzatib boradi va ularni o'z vaqtida ozod qilishni ta'minlaydi.

Ko'p platformalarda ijro etish

Bugungi kunda Windows-ning turli xil versiyalari mavjud. Yozma va yig'ilgan. net boshqariladigan dastur.net CLR-ni qo'llab-quvvatlaydigan har qanday platformada amalga oshirilishi mumkin.

Muvofiqlashtirilgan dasturlash modeli

Net dasturlash modeli Win32 va COM dizaynlarini osonlashtiradi. Dasturchilar endi ro'yxatga olish kitobi, qo'llanma, IUnknown, AddRef, Release, HRESULTS va shunga o'xshash narsalar haqida qayg'urmasligi kerak. . Net bu tushunchalarni qamrab olmaydi; yangi platformada ular umuman yo'q.

Shuni ham ta'kidlash kerakki, netda barcha xato xabarlari bir xil tarzda uzatiladi: istisnolar orqali.

Nazorat turlari

. Net CLR ob'ektlarga kirishni qisqartiradi va ushbu ob'ektlarning turiga qarab kirishni ta'minlaydi. Bundan tashqari, CLR xotirada tasodifiy manzil uchun markerni yaratishga va ushbu manzilda kodni bajarishga ruxsat bermaydi. Bu, xususan, bufer toshib ketish usuli bo'yicha odatiy dasturiy xatolar va klassik hujumlarning paydo bo'lishini istisno qiladi.

Tillarni integratsiya qilish

COM turli dasturlash tillarida komponentlarning o'zaro ishlashiga imkon beradi. . Net tillarni bir-biri bilan birlashtiradi. Misol uchun, C++ sinfini yaratishingiz mumkin, bu sinfni egallaydi, Visual Basic-da amalga oshiriladi. Bu shuni anglatadiki, sinf kutubxonasidan foydalanadigan dasturchilar ushbu kutubxonaning tilini tanlashda cheklanmagan. Istisno bir tilda yozilgan koddan kelib chiqishi va boshqa tilda yozilgan kodda qayta ishlanishi mumkin. Disk raskadrovka va profillash (profiling) operatsiyalari tillarning chegaralarini muammosiz kesib o'tadi. Net barcha tillar uchun umumiy bo'lgan turdagi tizimni aniqlaydi va taqdim etadi.

Umumiy turdagi tizim (umumiy turdagi tizim)

CLR tomonidan amalga oshiriladigan tizimning rasmiy spetsifikatsiyasi umumiy tizim (CTS) deb ataladi. Turlari tizimining asosiy vazifasi tillarning integratsiyasini ta'minlashdir.

Boshqariladigan kodni yozish uchun siz CTS qoidalarini bilishingiz shart emas, chunki tanlangan til o'z sintaksisi va turlari qoidalarini ta'minlaydi va sintaksisini kompilyatsiya jarayonida CLR sintaksisiga ko'rsatadi. Misol uchun, CTS faqat bitta meros qo'llab-quvvatlaydi, va C++ darslari qo'llab-quvvatlaydi, qaysi bir necha asosiy sinflar meros. Ishlab chiquvchilarga yordam berish uchun, Visual C++ kompilyatori xato haqida xabar beradi, agar siz boshqariladigan kodda bir nechta merosni ishlatmoqchi bo'lsangiz.

CTSNING yana bir qoidasi shundaki, barcha asosiy sinflar tizim sinfini meros qilib olishlari kerak.Object. Ob'ekt-bu tizim nom maydonida aniqlangan turdagi ism. (Asosiy sinflar quyida batafsil tavsiflanadi).

Assemblies - boshqariladigan komponentlar

[Assambleya-faqat assembler tiliga nisbatan ishlatilgan yangi atama. Aslida, bu "to'plami " yoki" kit", lekin men u yaxshi yoki ingliz imlo tark, yoki (endi to'g'ri" barqaror "deb tarjima qilingan so'z stub, o'xshash, va"vilkasi" deb tarjima qilish uchun ishlatiladi) asembl sifatida tarjima qilish, deb o'ylayman. Lekin men "boshqariladigan" deb tarjima qildim, chunki "menejer"so'zi ildiz otishi mumkin emas. CLR ham tarjima qilish qiyin.]

. Net, versiyalarni o'rnatish va kuzatishni osonlashtiradigan yangi dastur joylashuvi modelidan foydalanadi. Ushbu modelning asosiy tushunchasi asembldir. Assembly assembly tomonidan amalga oshirilgan turlar va texnikani tasvirlaydigan metadata bilan bir qatorda resurslar va turlar to'plami. Shunday qilib assembly-bu o'z-o'zidan tasvirlangan komponent. Bunday komponentlarning asosiy afzalligi shundaki, ularni ishlatish uchun boshqa fayllar kerak emas. Header fayllar, IDL fayllar, turi kutubxonalar va proksi-suruv har qanday til komponent kirish uchun talab qilinmaydi-zarur ma'lumotlar butlovchi metadata ilova qilinadi.

Assemblies bir ilovaga tegishli bo'lishi yoki bir nechta ilovalar o'rtasida bo'lishishi mumkin. CLR bir vaqtning o'zida amalga oshiriladigan ikkita turli xil ilovalar uchun bitta assemblyning turli versiyalarini yuklashi mumkin. Assambleya o'z-o'zidan yozilganligi sababli, operatsion tizimda ro'yxatdan o'tish talab qilinmaydi va dasturni o'rnatish fayllarni oddiy nusxalashni anglatadi. Assemblies shuningdek,. net xavfsizlik tizimida rol o'ynaydi, bu erda assembly talab qilinadigan va ruxsat berilgan birlikdir.

Xavfsizlik tizimi

CLR foydalanuvchilarning resurslarga kirishini va dastur harakatlarini nazorat qiluvchi xavfsizlik xizmatlarini taqdim etadi. CLR kodni yuklab olish, ob'ektlar yaratish va texnikani chaqirish uchun ishlatilganligi sababli, u xavfsizlikni boshqarishi va xavfsizlik siyosatini belgilashi mumkin. Netda xavfsizlikni ta'minlash ikki darajada mumkin: kod darajasida (code access security) va foydalanuvchi rollari darajasida (role-based security).

Dasturchilar ishni bajarish uchun kod bo'lishi kerak bo'lgan kerakli imtiyozlarni aniqlaydi. Misol uchun, kodni faylga yozish yoki atrof-muhit o'zgaruvchilarini o'qish uchun ruxsat berish kerak. Ushbu ma'lumot assembly-da, kodning haqiqiyligi haqida ma'lumot bilan birga saqlanadi. Ruxsat berish siyosati tizim ma'murlari tomonidan kodning kelib chiqishi va boshqalar haqidagi ma'lumotlar asosida belgilanadi. Ruxsatlar Foydalanuvchining ma'lumotlari asosida ham berilishi mumkin. Rollar foydalanuvchilarning toifalari bo'lib, rivojlanish yoki o'rnatish jarayonida aniqlanishi mumkin.

Oraliq til va JIT tuzuvchi

Manba fayllari tayyor bo'lganda, siz kompilyatorni ishga tushirasiz va EXE yoki dllni olasiz. Ushbu EXE yoki DLL fayllari PE (portativ Executable-Portable executable) fayllariga juda o'xshash, aslida ular ba'zi farqlar bilan PE fayllari.

Birinchi farq shundaki, PE tomonidan boshqariladigan fayllardagi kod x86 protsessor buyruqlari yoki boshqa mashina kodi emas. Buning o'rniga, kompilyator Microsoft qidiruv tilida kod yaratadi (Microsoft intermediate language - MSIL). MSIL o'z ichiga olgan PE fayl operatsion tizimi. net CLR beradi, agar har qanday protsessor platformasida amalga oshirilishi mumkin.

Ikkinchi farq shundaki, ushbu faylda CLR tomonidan ishlatiladigan metadata mavjud bo'lib, fayldan turlarni aniqlash va yuklab olish, ob'ektni xotirada saqlash, texnikani chaqirish, havolalarni boshqarish, MSILNI mashina kodlariga o'tkazish, xavfsizlikni nazorat qilish va boshqa ko'plab vazifalar.

Yana bir farq shundaki, olingan komponentlar faqat EXE yoki DLL emas. Netda foydalanish va joylashtirish birligi assembly. Derleyici variantlariga qarab, ko'p faylli Assambleyaning bir qismi sifatida tarqatilgan yagona fayl Assambleyasi yoki boshqariladigan kod moduli olinishi mumkin. Mijozning nuqtai nazari bo'yicha, assembly eksport qilinadigan turlar va resurslarning nomi kollejidir. Ishlab chiquvchi Assambleya nuqtai nazaridan-bu PE fayllari, resurs fayllari, phtmlL sahifalari, rasmlar va boshqalar.

MSIL-bu Jarayonmicrosoft tomonidan yaratilgan mustaqil oraliq til. MSIL eng ko'p kompyuter tillariga qaraganda yuqori darajadagi tildir. U ob'ektlarning turlarini tushunadi va ob'ektlarni yaratish va ishga tushirish, virtual usullarni chaqirish va array elementlarini bevosita manipulyatsiya qilish bo'yicha ko'rsatmalarga ega. Hatto istisnolar bilan ishlaydigan ko'rsatmalar ham mavjud. Boshqa har qanday mashina tili singari, MSIL assemblerda ham yozilishi mumkin. Microsoft MSIL uchun assembler va disassembler beradi.

Boshqariladigan dasturni yig'ishda modul _CorExeMain funktsiyasini net CLR (MSCorEE) dan import qiladi.dll). Foydalanuvchi dasturni ishga tushirganda, operatsion tizim yuklagichi ishlaydigan blok ichidagi kirish nuqtasiga o'tadi. Amalga oshirilgan blokdagi kod faqat MSCorEE ichidagi _corexemain funktsiyasini boshqaradi.dll. CLR boshqariladigan modulning kirish nuqtasini topadi va keyin bajarilgan blokning boshqariladigan MSIL kodini bajarishga kirishadi.

Boshqariladigan kodni bajarishdan oldin, CLR birinchi navbatda CPU yo'riqnomasida boshqariladigan MSIL ko'rsatmalarini tuzishi kerak. Bu erda odatiy muammo paydo bo'ladi: foydalanuvchi dasturni ishga tushirganda, u butun dastur tuzilguncha kutmoqchi emas, ayniqsa, dasturning ko'pgina funktsiyalari chaqirilmaydi. Shuning uchun CLR, MSIL kodini CPU yo'riqnomasida kompilyatsiya qiladi, vazifalar bevosita chaqirilganda. Qachon, bunday funktsiya kelajakda chaqiriladi, darhol mashina kodi amalga oshiriladi(va tuzuvchi jarayoni jalb emas). MSIL faqat o'z vaqtida (just-in-Time - JIT) tuzilganligi sababli, ushbu CLR komponenti tez-tez JIT kompilyatori (JIT compiler) yoki JITter deb ataladi.



С#

Bilan#


C # C++, Visual Basic, Java va Object Paskal kabi mashhur tillarning eng yaxshisini o'z ichiga oladi. C # tezkor rivojlanishni ta'minlaydi, ayni paytda samarali kodni yozishga imkon beradi. Keling, yangi tilning xususiyatlarini keltiraylik:

C # C++, Visual Basic, Java va Object Paskal kabi mashhur tillarning eng yaxshisini o'z ichiga oladi. C # tezkor rivojlanishni ta'minlaydi, ayni paytda samarali kodni yozishga imkon beradi. Keling, yangi tilning xususiyatlarini keltiraylik:

- avtomatik axlat yig'ish

- ko'rsatkichlarni manipulyatsiya qilish va xotiraga bevosita kirish imkoniyati

- xususiyatlar va voqealarni qo'llab-quvvatlash (VB kabi)

- atributlarni qo'llab-quvvatlash

- ichki qo'llab-quvvatlash asosiy turlari (chiziq, qator,...)

- bir nechta meros faqat interfeyslardan (Java-da bo'lgani kabi) mumkin)

- API, Windows API va COM+ til darajasida qo'llab-quvvatlash

- yordam Assambleyasi

- nazorat turlari

- o'zgaruvchilarni avtomatik ravishda ishga tushirish

Atributlar yangi mexanizmdir. Ularning yordami bilan siz sinflar va usullar uchun tavsiflovchi ma'lumotlarning yangi turlarini kiritishingiz va ushbu ma'lumotni bajarish vaqtida olishingiz mumkin. Yangi tilda etishmayotgan yagona narsa shablon bo'lib, so'nggi bir necha yil ichida C++ dasturchilariga juda yoqadi.

Keling, "Salom, dunyo" an'anaviy prgramining kodini keltiraylik»

using System;

class Hello

{

static void Main()



{

Console.WriteLine("Hello, world");



}

}

Ko'rib turganingizdek, sinf ta'rifi sintaksisi Java-ga o'xshaydi.



Microsoft standartni yaratdi# keng foydalanish uchun ochiq. Net platformasi uchun # kompilyatori Visual Studio ning keyingi versiyasida mavjud bo'ladi.

# Bilan yangi platforma uchun ilovalarni yaratish uchun mukammal til bo'ladi.
Download 20.29 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling