Помогни ни да направим Uroci.net по - богат! Добави урок

Как работи ASP.NET

bubust   трудност:    видян: 26083

Как работи ASP.NET


Основно, ASP.NET работи като използва сървърно базирани компоненти за генериране на HTML. Изпраща се HTML на клиента и се разполага в браузера му. ASP.NET разграничава капацитета на клиентския браузер и генерира съответен за него HTML. ASP.NET работи като използва сървърно базирани компоненти за генериране на markup, като HTML и скрипт. HTML и скрипт се изпращат към клиента и се разполагат в браузера. Типът на изпратения markup към клиента се разграничава от контролите. Кодът markup не трябва да е HTML; примерно мобилните контроли пращат WML към безжични устройства. ASP.NET потребителския код (примерно кодът, който поставя текста на етикета във вашия първи проект) се прекомпилира. Това е в контраст с ASP. Даже и да бяхте използвали компилирани COM компоненти с ASP, извикването на компонентите щеше да е късно свързване (late-bound). Използвайки ASP.NET вие може да разчитате на всички възможности на .NET Framework, като наследяемост, сигурност и колекцията за боклук (garbage collection). Като ASP, ASP.NET може да поддържа автоматично статичен мениджмънт. ASP.NET e разширяем спрямо Web фермите, обслужвайки IIS спускания и не използва бисквитки - cookies.


- Web страниците и кода

Страниците, които създавате са разделени на две части: потребителски интерфейс и код. Можете да видите това в проект WebAppTest защото имате WebForm1.aspx и a WebForm1.vb. Файлът с разширение VB е клас файл, наричан page class, и отделя вашия код от HTML. Когато създавате страница под VB.NET, виждате файлове ASPX и VB като два изгледа на една и съща страница. Когато компилирате страницата, ASP.NET генерира нов клас и го компилира. Този нов клас има статичен HTML, ASP.NET сървър контроли и кода на вашата форма, компилиран в него. Изпратения към клиента HTML се генерира от класа на ход (on-the-fly). Този клас е всъщност изпълнима програма, която генерира и изпраща HTML към браузера, където и да се извика страницата. В случая на нашия пример, ако погледнем изпратения HTML към браузера, ще забележим, че всички контроли, които са добавени(label, form) са вътре в блока за формата HTML <FORM>...</FORM>. Това е така, защото HTML формата е единствения начин за стандартния HTML да подаде данни от HTML страницата обратно към сървъра. Кода, който написахте за събитието клик върви само на сървъра. Когато някой натисне бутона, (той действа като предаващ (submit) бутон, което може да видите в кода), формата се предава към сървъра. Ефектът е, че поема събитието «клик» и го праща на сървъра за обработка. Генерирания клас е инстанциран и събитието «клик» се обработва. Генерира се нов HTML поток и се изпраща обратно към клиентския браузер. Този нов HTML поток съдържа нов стринг за разполагане в етикета; в случая «Hello, World!». ASP.NET по този начин прибавя сървър контролите към страницата.


- Сървър контроли - Server Controls

Една от големите крачки при създаване на Web апликации в VB.NET е идеята за сървърконтроли. Ако отворите Visual Studio.NET и щракнете върху формата и след това отворите Toolbox, ще видите няколко интересни панела (tabs). Eдин от тях е с етикет HTML, и показва серия от HTML прибавки (tags). Те са просто елементи, които можете да влачите и пускате върху вашата форма и да създадете статична HTML страница (page); Ако сте пуснали таблица от панела HTML на Toolbox и след това погледнете HTML, генерирал се е следния HTML код:

<TABLE cellSpacing=1 cellPadding=1 width=300 border=1>
<TR>
<TD>
</TD>
<TD>
</TD>
<TD>
</TD>
</TR>
</TABLE>

Това означава, че не може да започнете да пишете VB код за тази таблица, защото е само HTML представяне в страницата. Въпреки че бутона и текстовата кутия, които прибавихте по-рано също са картотекирани като стандартни HTML прибавки (tags), те са ASP.NET сървър контроли. Те действат като контроли, за които може да програмирате код както във Windows формите; Вземете бутон от панела HTML на Toolbox и го пуснете в дизайнера. Сега кликнете в панела Web Forms и довлечете отново бутон от Toolbox. Ако погледнете в дизайнера, двата бутона са един до друг, съвсем еднакви, само че на втория има малко зелено триъгълниче в горния ляв ъгъл, индикация за ASP.NET сървър контрол. Ако погледнете в HTML, ще видите чувствителна разлика . Ето как се появяват двата бутона в HTML изглед:

<INPUT type=button value=Button>

<asp:Button id=Button2 runat="server" Text="Button">

</asp:Button>

Първият бутон се извежда със стандартна HTML <INPUT> прибавка (tag). Вторият бутон се извежда със <asp:Button> прибавка (tag). Тази прибавка <asp:Button> не е стандартна за HTML. Когато компилатора на .NET види това, той знае, че бутона е ASP.NET сървър контрол (server control). В изглед Design, кликнете двукратно върху първия бутон (HTML бутон). Ще излезе диалогова кутия, показана на фигура 111. Съобщението ви информира,че това е HTML елемент, което значи, че не можете да пишете код за него. Кутията ви дава опция: можете да конвертирате контрола в HTML server control. Това е разликата между HTML сървър контрол и ASP.NET сървър контрол.



Фигура 111 Съобщителната кутия ви уведомява, че това еHTML елемент и не можете да добавяте код, без първо да го направите HTML server control.


HTML сървър контролите са стандартни HTML елементи към които Microsoft е добавил сървърни (server-side) програмни възможности. Когато добавяте HTML eлемент, ASP.NET вижда, че трябва да бъде генериран само текст и подаден на клиента. HTML сървър контролите (server controls), от друга страна идват с програмен модел, който има всички атрибути на HTML елемент на сървъра. Microsoft е направил тези контроли мощни: те могат да разбират стойности между обиколките до сървъра, могат да реагират на събития на сървъра (или опционално на клиента) и могат да бъдат свързани към източник на данни. ASP.NET сървър контролите са по-абстрактни контроли и нямат отделна кореспонденция с HTML tag. Примерно ако погледнете в панел Web Forms на Toolbox, ще забележите контроли като Calendar (виж фигура 112) и Repeater.

Накрая тези контроли се генерират като HTML, често композирани от много HTML притурки (tags). Примерно календара е таблица с много редове е колони. ASP.NET сървър контролите имат всички предимства на HTML сървър контроли, но могат също да разграничават възможностите на клиентския браузер и да разгръщат повече или по-малко модерни HTML в зависимост от клиента. Някои сървър контроли могат да забавят изпращането на събития към сървъра. Можете всеки елемент от страницата да го вмъкнете в HTML сървърконтрол. Примерно имате heading 1 в началото на страницата, която прокламира «Welcome to my first ASP.NET page». Превключете към HTML изглед за момент и ще видите, че кода е:

<H1 align=center>Welcome to my first ASP.NET page</H1>

Фигура112 Страница с календар (контрол Calendar)

Сега обратно към изглед Design и маркирайте текста. Дясно кликване върху текста и избирате Run As Server Control. Сега превключете към HTML изглед пак и ще видите промени:

<H1 align=center id=H11 runat="server">Welcome to my first ASP.NET page</H1>

Макар че не изглежда като голяма промяна, че два атрибута са прибавени към tag: id=H11 и runat="server". Първият атрибут прави притурката (tag) обект за който може да се напише код. Това е обща практика за Dynamic HTML (DHTML). Вторият атрибут казва на ASP.NET , че обектния код ще върви от страната на сървъра (server side). Така сървърът ще обработва всяко свойство или метод или събитие на този елемент. Кликнете два пъти на втория HTML сървър контрол -бутона, който добавихте. В прозореца на кода, в манипулатора на събитието Button2_Click, запишете следния код:

H11.InnerText = "It is now " & Now

Ако стартирате проекта и кликнете върху бутона ще получите резултат като показания на фигура 113.

Фигура113 Всеки елемент може да бъде превърнат в сървър контрол, като <H1> tag в примера.

Вземете Calendar ASP.NET сървър контрол от панел Web Forms на Toolbox и го пуснете върху формата. Ако разгледате кода в изглед HTML в дизайнера, ще видите, че сте добавили <asp:Calendar> tag към HTML. Ако стартирате страницата и видите сорс кода в браузера, ще забележите, че календара е току що генериран като HTML таблица, както показва отрязъка код по-долу:

...
Sun
</td><td align="Center">
Mon
</td><td align="Center">
Tue
</td><td align="Center">
Wed
...

Малко код JavaScript от клиентската страна (client-side) е смесен, защото ASP.NET се грижи браузера да може да обработи кода.


Страници: 1 2 »

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com