2. Як працює ASP.NET Web Forms
• CGI-style vs tree of controls PHP vs ASP.NET
• Tree of controls:
– Web controls конвертуються з розмітки в
об’єкти
– Решта HTML коду конвертується в Literal
controls
4. Page lifecycle (основні фази)
• Instantiate – будується дерево контролів з декларативного
опису (markup)
• Init – програмно встановлюються властивості контролів +
створюються динамічні контроли
• Load View State – відновлюються властивості
• Load Postback Data – встановлюються властивості, передані
користувачем через POST
• Raise Postback Events – OnClick, OnChanged – працює логіка
програми, програмно встановлюються властивості контролів
• Save View State – зберігаються програмно змінені властивості
• Render – з дерева контролів будується HTML і відправляється
клієнту
6. Web Server Controls
• Генерують HTML (render) динамічно
• Визначаються в *.aspx розмітці
• Мають events (server-side)
• Code-behind класи працюють з контролами
• Контроли можуть створюватись динамічно
• Контроли зберігають стан у ViewState
7. View State
• Потрібен для збереження програмно
встановлених властивостей контролів між
postback’ами
• Тому що HTTP не зберігає стан (stateless)
• View state – спосіб зберегти стан сторінки в
HTML
– Стан «мандрує» між клієнтом і сервером разом
із POST-requests and HTML-responses
8. Events
• Raise -- asp:Button OnClick
• Реалізація – ID кнопки передається в тілі
POST запиту
• Changed – asp.TextBox OnTextChanged
• Реалізація – значення з POST запиту
порівнюється з попереднім значенням
9. 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>
13. Web.config transformations
• Web.config
– Web.Debug.config
– Web.Release.config
• Дозволяє визначати різні налаштування
для різних build-конфігурацій
• Що таке build-конфігурації
14. JavaScript Demo
• JSExample.aspx
• Файл ~/Scripts/Common.js
• <script>
• Порядок завантаження скриптів та HTML
елементів важливий
• Visual Studio can debug JavaScript
• ScriptManager -- для завантаження
скриптів
15. UpdatePanel
• Дозволяє оновлювати частини сторінки
незалежно від решти (AJAX)
• Asynchronous JavaScript and XML
• Усуває необхідність перевантаження
(reload) всієї сторінки
• Не вимагає знання JavaScript
• На формі повинен бути ScriptManager
19. Application lifecycle
Отримується перший запит Створюються відповідні Http
до аплікації об’єкти
Отримується запит до •Створюється ApplicationManager, •Створюються HttpContext,
HostingEnvironment HttpRequest, HttpResponse
аплікації •Компілюється код з App_Code
BeginRequest -> Запит обробляється за HttpApplication створюється
допомогою HttpApplication та присвоюється запиту.
AuthenticateRequest->
AuthorizeRequest ->
… ->
EndRequest http://msdn.microsoft.com/en-us/library/bb470252.aspx
20. IHttpModule
HttpModule – це обробник HTTP запитів який
обробляє всі запити до сайту перед їх
безпосереднім виконанням.