.net-vs-com--.net-insights

.NET VS COM -.NET insights

“Microsoft” şirkətinin təqdim etdiyi ”.NET” platforması əslində ondan əvvəl mövcud olan COM (Component Object Model) texnologiyasına analoq , onun daha asan və daha təkmil variantıdır.


COM texnologiyası Windows əməliyyat sistemi ailəsində dillərarası inteqrasiya oluna bilən proqram modullarının və servislərinin yazılmasına imkan verirdi. İlk vaxtlar bir proqramlaşdırma dilində yazılmış kod modulunun başqa proqramlaşdırma dilində yenidən istifadə oluna bilməsi üçün hazırlanmış olan COM protokolu imkan verirdiki proqramlaşdırma dilləri arası reusable (yenidən istifadə olunan) kod yazılsın. Məqsəd isə başqa proqramlaşdırma dilində yazılmış alqoritmin yenidən istifadəsi olub. Proqramlaşdırma dillərində yazılmış kodlar nəticə etibar ilə bitlərə çevrildiyinə görə ”COM” məhz bu protokolu tətbiq edərək Microsoft Windows əməliyyat sistemi ailəsi üçün dillərarası inteqrasiyanı təmin edirdi. Lakin ”COM” texnologiyasının bəzi çatışmazlıqları onun daha təkmil analoqu olan ”.NET” platformasının yaradılmasına zəmin yaratdı. ”COM” texnologiyasının aşağıdakı kimi çətinlikləri var idi:


1. COM ilə proqram yazmaq xeyli çətin idi

2. Yalnız Microsoft Windows əməliyyat sistemi ailəsi nəzərdə tutulmuşdu.

3. COM dll-ləri yenidən istifadə etmək üçün mütləq əməliyyat sisteminin reyestrində qeydiyyatdan keçirmək lazım idi


Baxmayaraq ki, həmin vaxt rəqib olan ”OMG” şirkətinin ”CORBA” protokolu bir neçə əməliyyat sistemində isləyən “COM” protokolu yaratmışdılar, Microsoftun hazırladığı ”COM” yenə də geniş istifadə olunurdu. ”CORBA” - ”COM”-dan fərqli olaraq dildən asılı deyildi,həmçinin platformadan da asılı deyildi.

90-ci illərin sonundan hazırlanmağa başlayan ”.NET” platforması özündə aşağıdakı üstünlükləri cəmləyib:


1) Əməliyyat sitemi və konkret qurğulardan asılı deyil

2) Dillər-arası inteqrasiyanı tam mükəmməl təmin edir. Belə ki, misal üçün Visual Basic-də yazılan bir dll rahatlıqla başqa ”.NET” proqramlaşdırma dilində istifadə olunur, hətta bir dildə yaradılmış klasdan başqa dildə yaradılmış klas törəyə bilir.

3) Bir neçə proqramlaşdırma dilləri dəstəkləyir. NET imkan verirdki hər bir proqramçı öz zövqünə uyğun dili seçsin. Dillərin tam siyahısı : http://en.citizendium.org/wiki/List_of_languages_using_the_.NET_Framework

4) .NET-in əsas nüvə proqramlaşdırma dili ”İL” dili olduğuna görə əslində üzdəki bütün dillər sadəcə ”İL” dilinin wrap olunmuş varıantı kimi çıxış edir. Yəni bütün ”.NET” proqramlaşdırma dilləri ”İL” dilinə konvert olduğuna görə rahatlıqla əlaqə yarada bilirlər.

5) Köhnə texnologiya sayılan ”COM” ilə rahatlıqla işləmək mümkündür.

6) ”COM” kimi assembly faylların reyestrdə registrasiyasına ehtiyac yoxdur. Çünki ”COM” texnologiyası ilə yazılmış modulların hostinqini əməliyyat sistemi yerinə yetirdiyi halda ”.NET” dilində yazılmış assembly faylların hostinqi ”.NET” platforması tərəfindən yerinə yetirilir.

.NET - platformasında yazılmış proqramlara (genişlənməsindən asılı olmayaraq) assembly fayllar deyilir. Yəni istər *.dll istərsə də *.exe olsun, hər ikisi assembly faylı adlanır. Assembly faylının hostinqini CLR (Common language runtime) yerinə yetirir. Mexanizm belədir ki,biz ”.NET”-də istənilən bir app yaratdıqda proqramı işə salan kimi əməliyyat sistemi mscoree.dll (Mocrosoft .NET runtime Execution engine)-nə müraciət edirki o, da öz növbəsində ”.NET”-də CLR mühitini formalaşdırır. Hazırladığımız proqram CLR tərəfindən idarə olunur. Yəni proqramın yaddaş tələbi, reference verdiyimiz faylların tapılması, exception handling kimi çox vacib proseslər məhz CLR tərəfindən təmin edilir. Proqram CLR mühitinə düşərkən kompilyasiya zamanı İL (MSİL –Microsoft intermediate language) dilinə çevrilir. İL dili prosessordan asılı olmayan keçid dildir. ”.NET” platformasında isə ana dil olaraq qəbul edilir. İL dilinə çevrilən proqram isə daha sonra JİT(Just in Time) kompilyatoru vasitəsilə runtime-da maşın dilinə çevrilirki bu da kodun prosessor tərəfindən icra olunmasına gətirib çıxardır.

.NET-də sonlu nəticə olaraq biz Assembly faylı alırıq ki, bu fayl da öz növbəsində aşağıdakı hissələrdən ibarətdir:

1 ) İL kodlar – bütün assebly fayllarının daxili ”.NET” dilində təsviridir

2) Manifest- hesabına bizim assembly faylın hansı resurslara (assembly faylları) reference saxladığını və proqramın copyright parametrlərini görə bilərik

3) Metaverilənlər-proqramı təşkil edən bütün klas, metod, onların input və output parametrləri, dəyişənlər və.s haqda bütün məlumatları saxlayır.

Tural

Tural Süleymani

Süleymani Tural Microsoft-un MCSD statuslu mütəxəssisidir, 2008-ci ildən bu yana proqramlaşdırma üzrə tədris aparır

Müəllifin bu dildə ən son postları

Bu yazıları da bəyənə bilərsiniz