KNOW INTUIT, Лекция, Принципи на работа и структура на уеб базирани приложения
Компилация и MSIL
.NET приложенията работят по различен начин от традиционните Windows приложения. Такива програми всъщност се компилират на две стъпки. На първия етап изходният код се компилира по време на изграждането на проекта и вместо изпълним файл с машинни кодове се получава сборка. В .NET технологията асемблирането е основната единица за повторно използване, създаване на версии, защита и внедряване. Средата за изпълнение на общ език предоставя на програмиста набор от класове, които позволяват манипулиране на асембли. (сглобяване), който съдържа команди на Microsoft Intermediate Language (MSIL) (Intermediate LanguageMicrosoft). IL кодът се съхранява във файл на диск. В същото време MSIL файловете (съкратено IL), генерирани от компилатор, например C#, са идентични с IL файловете, генерирани от компилатори от други .NET езици. В този смисъл платформата остава в неведение относно езика. Най-важната характеристика на CLR е, че егенеричен; една среда изпълнява както програми на C#, така и програми на VB.NET.
Вторият етап на компилиране се случва точно преди страницата действително да бъде изпълнена. На този етап CLR преобразува междинния IL код в машинен код на ниско ниво, който се изпълнява от процесора. Процесът е следният: когато се изпълнява системна програма .NET, CLR извиква JIT компилатора, който след това превръща MSIL във вътрешен код на процесора. Тази стъпка е известна катокомпилация в движение(Just-In-Time) или JIT компилация (JIT' ing ) и протича по същия начинза всички .NET приложения (включително, например, Windows приложения). Когато една програма се изпълнява, CLR се грижи за управлението на паметта, проверката на типа и редица други задачи за приложението. На фиг. Фигура 1.3 показва този двуетапен процес на компилиране.

Стандартният JIT компилатор работипо заявка. Когато се извика метод, JIT компилаторът анализира IL кода и произвежда високоефективен машинен код, който се изпълнява много бързо. Компилаторът JIT е достатъчно интелигентен, за да разпознае дали кодът вече е компилиран, така че по време на изпълнение на програмата компилирането да се извършва само когато е необходимо. Докато работи, една .NET програма става все по-бърза и по-бърза, защото използва повторно вече компилиран код.
CLS спецификацията предполага, че всички .NET платформени езици генерират много подобен IL код. Освен това, при компилиране на програма, в допълнение към MSIL, се формира още един компонент - метаданни. Те описват данните, използвани от програмата и това позволява на кода да взаимодейства с друг код. В резултат на това обектите, създадени на един език, са достъпни и могат да бъдат наследени на друг. Тоест можете да създадете базов клас във VB.NET и клас, извлечен от него в C#.
Като цяло, когато пишете приложение, се създава това, което се нарича управляван код, който се изпълнява под контрола на CLR времето за изпълнение на приложението, което е независимо от езика. Тъй като приложението работи под контрола на CLR, управляваният код трябва да отговаря на определени изисквания (т.е. компилаторът трябва да генерира MSIL файл, който е насочен към CLR, и трябва да използва библиотеките на .Net Framework 3. Библиотеката с класове .NET разкрива всички функции на CLR. Класовете, които съставляват тази библиотека, са организирани подпомощ на пространства от имена. Всяко пространство от имена съдържа класове, които изпълняват свързани функции. ), в което получава много предимства, включително модерно управление на паметта, възможност за смесване на езици, високо ниво на сигурност при пренос на данни, поддръжка за контрол на версиите и разбираем начин за взаимодействие на софтуерните компоненти 4 Алтернатива на управлявания код е неуправляемият код, който не се изпълнява от CLR. Въпреки това, преди появата на .NET Framework, всички програми на Windows използваха неуправляем код. .
Следователно, .NET компилацията е разделена на два етапа, за да предостави на разработчиците удобство и преносимост. Преди да генерира собствен код на ниско ниво, компилаторът трябва да знае на каква операционна система и базов хардуер ще работи приложението. С две стъпки на компилиране можете да създадете компилиран асембли с .NET код и да го разпространите на повече от една платформа.
Разбира се, компилирането няма да бъде толкова полезно, ако трябва да се прави всеки път, когато потребителят поиска уеб страница. За щастие, ASP.NET приложенията не трябва да се компилират всеки път, когато се поиска уеб страница или уеб услуга. Вместо това IL кодът се генерира веднъж и се генерира повторно само когато изходният код се промени. По подобен начин файловете с естествен код се кешират в системна директория с път като C:\[WinDir]\Microsoft.NET\ Framework\[Version]\Temporary ASP.NET Files , където WinDir е директорията на Windows, а Version е текущо инсталираната версия на .NET.
ASP.NET архитектура
Всяко уеб приложение, разработено с ASP.NET, се състои от бекенд, код и информация за конфигурацията.
Информационната частсъдържа статични и динамични елементи на страницата и е реализирана като уеб формуляри. Статичните елементи са типични елементи на езика HTML, докато динамичните елементи се свързват от програмния код на приложението по време на неговото изпълнение (например заявки към база данни).
Кодътприлага логиката, дефинирана в процедурите за обработка на данни, които определят как приложението отговаря на потребителски заявки. Програмният код се изпълнява от сървъра и взаимодейства с динамичните елементи на информационната част, за да формира отговора на приложението.
Информация за конфигурацияса файлове, които съдържат настройки, които определят как приложението работи на сървъра, настройки за сигурност, как приложението реагира на грешки и т.н.
Основният елемент на уеб приложение е уеб формуляр (или уеб страница), който, от една страна, е подобен на формуляр на Windows, тъй като ви позволява да поставите различни контроли вътре, които могат да показват данни и да отговарят на действията на потребителя, а от друга страна, това е HTML страница, тъй като съдържа всичките си атрибути. Описанията на споменатите по-рано контроли са представени в кода на HTML страницата под формата на специални тагове.
На фиг. Фигура 1.4 показва пример на проста страница на уеб приложение, която съдържа само един елемент, бутон. Както можете да видите от фигурата, основата на страницата е тялото на стандартен HTML документ, вътре в който е елементът на формата, както и бутонът бутон. Освен това в началото на документа има някои допълнителни елементи, които ще бъдат обсъдени по-късно.

При стартиране на приложението тази страница се показва в прозореца на браузъра и изглежда така (фиг. 1.5).

От своя страна бутонът е свързан с програмен код, който се изпълнява, когато щракнете върху него. Този код се намира в отделен файл, чийто прозорец по време на разработка изглежда като на фиг. 1.6.