Microsoft платформа
Министерство на образованието на Република Беларус
"Белобългарски държавен университет по информатика и радиоелектроника"
Факултет по компютърен дизайн
по предмета “Основи на информационните технологии”
През последните десетилетия бяха създадени много технологии за улесняване на архитектурата и внедряването на изходния код на приложението. Много технологии предоставят абстракция, която позволява на разработчиците да се съсредоточат върху решаването на предметни проблеми, като мислят по-малко за характеристиките на хардуера и операционните системи.
Целта на тази работа е да даде кратко описание на платформата на Microsoft. Рамката на NETF, нейната структура и принципи на работа показват нейните предимства и недостатъци пред други съществуващи технологии, както и последните иновации в платформата и перспективите за нейното развитие.
NETF рамката има за цел да даде на разработчиците възможността да кодират на всеки език по техен избор. В същото време платформата осигурява максимална интеграция на всички компоненти, дори ако са написани на различни езици.
Единният програмен модел, API и език за програмиране е голяма крачка напред в областта на технологиите за абстракция и огромна помощ за разработчиците в тяхната работа. Всички функции в рамката на NETF са проектирани да направят проблемите с интеграцията нещо от миналото, което прави много по-лесно тестването, внедряването, администрирането, версията, повторното използване и повторното използване на код за други задачи.
Прегледът на рамката на Microsoft NETF трябва да започне с преглед на съществуващите алтернативни технологии, предназначени да улеснят създаването на архитектура ивнедряване на изходния код на приложението. Някои примери за такива технологии са:
Microsoft Foundation Class (MFC)е абстрактен слой, използван в езика C++ за програмиране на графичен потребителски интерфейс за операционни системи Windows. Използвайки MFC, разработчиците могат да се съсредоточат повече върху самата програма и по-малко върху цикли на съобщения, прозоречни процедури, прозоречни класове и т.н. [1].
JavaиJ2EEе напълно обектно-ориентиран, междуплатформен език за програмиране и базирана на него платформа за изграждане на приложения на корпоративно ниво. Java програмите се превеждат в байт код, който се изпълнява от Java Virtual Machine (JVM) – програма, която обработва байт код и предава инструкции на хардуера като интерпретатор, но с тази разлика, че байт кодът, за разлика от текста, се обработва много по-бързо [2].
ActiveServerPages (ASP)- служи като абстракция при създаване на активни и динамични уеб сайтове с помощта на VisualBasicScript или JScript. Тази технология позволи на разработчиците да се абстрахират от особеностите на мрежовите взаимодействия и да обърнат повече внимание на съдържанието на уеб страниците.
ActiveTemplateLibrary(ATL)е слой за абстракция, който улеснява създаването на компоненти, които могат да се използват от хора, работещи с различни езици за програмиране.
Всички тези технологии за абстракция са създадени, за да могат разработчиците да забравят за техническите детайли и да се съсредоточат върху конкретни неща, независимо дали става въпрос за GUI приложения, уеб приложения или компоненти. Въпреки факта, че тези технологии значително улесниха работата, те изискваха от програмиста да овладеемаса материал. Освен това различни технологии бяха разработени без споделяне и разработчиците бяха изправени пред необходимостта да решават трудни проблеми с интеграцията [1].
За разлика от технологиите, описани по-горе, платформата NETF ramework има за цел да даде на разработчиците възможността да пишат код на всеки език по техен избор. В същото време платформата осигурява максимална интеграция на всички компоненти, дори ако са написани на различни езици.
Всички характеристики на рамката на NETF имат за цел да направят проблемите с интеграцията нещо от миналото, което прави много по-лесно тестването, внедряването, администрирането, контрола на версиите, повторното използване и повторното използване на код за други задачи [3].
2.ОписаниеNET Framework
При проектирането на Net Framework Microsoft взе предвид недостатъците на съществуващите Windows платформи.NET Framework се състои от две части: среда за изпълнение на общ език (commonlanguageruntime, CLR) и библиотека с класове (Framework Class Library, FCL). CLR предоставя програмен модел, който се използва във всички видове приложения. CLR има собствено устройство за зареждане на файлове, мениджър на паметта (събирач на отпадъци), система за сигурност (сигурност на достъпа до код), пул от нишки и др. В допълнение, CLR предоставя обектно-ориентиран модел на програмиране, който определя как типовете и обектите изглеждат и се държат. FCL предоставя обектно-ориентиран API, който се използва от всички модели на приложения. Той съдържа дефиниции на типове, които позволяват на разработчиците да извършват I/O, да планират задачи на други нишки, да създават графики, да сравняват низове и т. н. Естествено, всички тези дефиниции на типове съответстват насъществуващ програмен модел в CLR. По-долу е даден списък на функциите и предимствата на платформата NET:
- Пълно и абсолютно междуезично взаимодействие. .NET Framework поддържа наследяване на различни езици, обработка на изключения на различни езици и отстраняване на грешки на различни езици.
- Обща среда за изпълнение за всякакви .NET приложения, независимо на кои езици са създадени. Един от важните моменти е, че всички езици използват един и същ набор от вградени типове данни[2].
- Единичен софтуерен модел. За разлика от съществуващия подход, когато някои функции на операционната система са достъпни чрез процедури на библиотека с динамични връзки (DLL), а други чрез COM обекти, цялата услуга на приложението е представена от общ обектно-ориентиран модел на програмиране.
- Опростен модел на програмиране. Елиминира работата с различни структури, както беше с Win32 и COM. Така че разработчикът не трябва да се занимава с регистъра, глобалните уникални идентификатори (GUID), IUnknown, AddRef, Release, HRESULT и т.н.
- Няма проблеми с версиите. Всички разработчици на Windows са наясно с проблемите със съвместимостта на версиите, известни като "DLL hell". Този проблем възниква, когато компоненти, които са инсталирани за ново приложение, заменят компоненти на старо приложение и в резултат на това последното започва да се държи странно или спира да работи. Архитектурата на .NET Framework позволява компонентите на приложението да бъдат изолирани, така че приложението винаги да зарежда компонентите, с които е създадено и тествано. Ако приложението работи след първоначалната инсталация, то винаги ще работи.
- Опростено разгръщане. Преди това Windows приложенията бяха много трудни за инсталиране и внедряване: обикновено трябваше да създавате масафайлове, настройки на регистъра и преки пътища. Освен това е почти невъзможно напълно да премахнете приложението. С появата на NET Framework всички тези проблеми са нещо от миналото. Компонентите на NET Framework не са свързани с регистъра. Инсталирането на приложения на NET Framework е само въпрос на копиране на файловете в правилните директории и създаване на преки пътища. Премахването на приложения се свежда до изтриване на файлове.
- Работа на много платформи. Когато компилира код за .NET Framework, компилаторът генерира код на Common Intermediate Language (CIL) вместо традиционния код, състоящ се от инструкции на процесора. Когато се изпълнява, CIL се превежда в инструкции на процесора. Тъй като преводът се извършва по време на изпълнение, се генерират специфични за процесора инструкции. Това означава, че можете да разположите приложението си NET Framework на всяка машина, която изпълнява версия на .NET Framework, която отговаря на стандарта ECMA: x86, x64, IA64 и т.н.
- Интеграция на езици за програмиране. COM технологията поддържа междуезична оперативна съвместимост - .NET Framework осигурява междуезична интеграция, тоест един език може да използва типове, създадени на други езици. Например .NET Framework ви позволява да създадете клас в C++, който е извлечен от клас, реализиран във VisualBasic. CLR прави това възможно благодарение на Common Type System (CTS), която всички CLR-ориентирани езици трябва да използват. Спецификацията за общ език (CLS) определя правилата, които разработчиците на компилатора трябва да следват, за да могат техните езици да се интегрират с други. Самата Microsoft предлага няколко такива езика: C++/CLI (C++ с управлявани разширения), C#, VisualBasic NET. Освен това други компании и образователни институции създават компилатори за други езици,съвместим с CLR.
- Опростено повторно използване на код. Всички описани по-горе механизми ви позволяват да създавате свои собствени класове, които предоставят услуга на приложения на трети страни. Сега повторното използване на код става изключително просто и се създава голям пазар за готови компоненти (типове).
- Автоматично управление на паметта (събиране на боклука). Програмирането изисква много умения и дисциплина, особено когато става въпрос за управление на използването на ресурси (файлове, памет, екранно пространство, мрежови връзки, ресурси на база данни и други). Една от най-честите грешки е небрежното отношение към освобождаването на тези ресурси, което може да доведе до неправилно изпълнение на програмата в непредсказуем момент. CLR автоматично следи използването на ресурси, като гарантира, че няма изтичане на ресурси.