asp.net part 2
TRANSCRIPT
![Page 1: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/1.jpg)
ASP.NETPart 2
![Page 2: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/2.jpg)
Як працює ASP.NET Web Forms
• CGI-style vs tree of controls
• Tree of controls:
– Web controls конвертуються з розмітки в об’єкти
– Решта HTML коду конвертується в Literal controls
PHP vs ASP.NET
![Page 3: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/3.jpg)
Demo
Viewstate.aspx
![Page 4: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/4.jpg)
Page lifecycle (основні фази)• Instantiate – будується дерево контролів з декларативного
опису (markup)
• Init – програмно встановлюються властивості контролів + створюються динамічні контроли
• Load View State – відновлюються властивості
• Load Postback Data – встановлюються властивості, передані користувачем через POST
• Raise Postback Events – OnClick, OnChanged – працює логіка програми, програмно встановлюються властивості контролів
• Save View State – зберігаються програмно змінені властивості
• Render – з дерева контролів будується HTML і відправляється клієнту
![Page 6: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/6.jpg)
Web Server Controls
• Генерують HTML (render) динамічно
• Визначаються в *.aspx розмітці
• Мають events (server-side)
• Code-behind класи працюють з контролами
• Контроли можуть створюватись динамічно
• Контроли зберігають стан у ViewState
![Page 7: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/7.jpg)
View State
• Потрібен для збереження програмно встановлених властивостей контролів між postback’ами
• Тому що HTTP не зберігає стан (stateless)
• View state – спосіб зберегти стан сторінки в HTML
– Стан «мандрує» між клієнтом і сервером разом із POST-requests and HTML-responses
![Page 8: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/8.jpg)
Events
• Raise -- asp:Button OnClick
• Реалізація – ID кнопки передається в тілі POST запиту
• Changed – asp.TextBox OnTextChanged
• Реалізація – значення з POST запиту порівнюється з попереднім значенням
![Page 9: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/9.jpg)
Validation• Client-side and server-side
• Типи
– Required field <asp:RequiredFieldValidator>
– Range <asp:RangeValidator>
– Compare control values <asp:CompareValidator>
– Pattern matching <asp:RegularExpression>
– Custom <asp:CustomValidator>
• <asp:ValidationSummary>
![Page 10: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/10.jpg)
Demo
Validation.aspx
![Page 11: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/11.jpg)
Data Binding
• <asp:DropDownList>
– DataSource property
– DataBind() method
– DataTextField property
– DataValueField property
![Page 12: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/12.jpg)
Demo
DataBindingDropDown.aspx
![Page 13: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/13.jpg)
Web.config transformations
• Web.config
– Web.Debug.config
– Web.Release.config
• Дозволяє визначати різні налаштування для різних build-конфігурацій
• Що таке build-конфігурації
![Page 14: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/14.jpg)
JavaScript Demo
• JSExample.aspx
• Файл ~/Scripts/Common.js
• <script>
• Порядок завантаження скриптів та HTML елементів важливий
• Visual Studio can debug JavaScript
• ScriptManager -- для завантаження скриптів
![Page 15: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/15.jpg)
UpdatePanel• Дозволяє оновлювати частини сторінки
незалежно від решти (AJAX)
• Asynchronous JavaScript and XML
• Усуває необхідність перевантаження (reload) всієї сторінки
• Не вимагає знання JavaScript
• На формі повинен бути ScriptManager
![Page 16: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/16.jpg)
Demo
UpdatePanel.aspx
![Page 17: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/17.jpg)
Demo
Java script in real ASP.NET projects
![Page 18: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/18.jpg)
FormsAuthentication
![Page 19: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/19.jpg)
BeginRequest ->AuthenticateRequest->
AuthorizeRequest ->… ->
EndRequest
Application lifecycle
Отримується запит до аплікації
Отримується перший запит до аплікації
•Створюється ApplicationManager, HostingEnvironment
•Компілюється код з App_Code
Створюються відповідні Httpоб’єкти
•Створюються HttpContext, HttpRequest, HttpResponse
HttpApplication створюється та присвоюється запиту.
Запит обробляється за допомогою HttpApplication
http://msdn.microsoft.com/en-us/library/bb470252.aspx
![Page 20: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/20.jpg)
IHttpModule
HttpModule – це обробник HTTP запитів який обробляє всі запити до сайту перед їх безпосереднім виконанням.
![Page 21: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/21.jpg)
Demo
IHttpModule in real projects
![Page 22: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/22.jpg)
IHttpHandler
HttpHandler - це обробник HTTP запитів який обробляє певний тип запитів.
![Page 23: ASP.Net part 2](https://reader036.vdocuments.us/reader036/viewer/2022062419/559701e21a28ab6c4f8b4572/html5/thumbnails/23.jpg)
Demo
IHttpHandler in real projects