SlideShare a Scribd company logo
ASP.NET
 Part 2
Як працює ASP.NET Web Forms
• CGI-style vs tree of controls   PHP vs ASP.NET

• Tree of controls:
  – Web controls конвертуються з розмітки в
    об’єкти
  – Решта HTML коду конвертується в Literal
    controls
Demo
Viewstate.aspx
Page lifecycle (основні фази)
• Instantiate – будується дерево контролів з декларативного
  опису (markup)
• Init – програмно встановлюються властивості контролів +
  створюються динамічні контроли
• Load View State – відновлюються властивості
• Load Postback Data – встановлюються властивості, передані
  користувачем через POST
• Raise Postback Events – OnClick, OnChanged – працює логіка
  програми, програмно встановлюються властивості контролів
• Save View State – зберігаються програмно змінені властивості
• Render – з дерева контролів будується HTML і відправляється
  клієнту
HTTP sniffers
• Fiddler – дозволяє логувати HTTP трафік
Web Server Controls
•   Генерують HTML (render) динамічно
•   Визначаються в *.aspx розмітці
•   Мають events (server-side)
•   Code-behind класи працюють з контролами
•   Контроли можуть створюватись динамічно
•   Контроли зберігають стан у ViewState
View State
• Потрібен для збереження програмно
  встановлених властивостей контролів між
  postback’ами
• Тому що HTTP не зберігає стан (stateless)
• View state – спосіб зберегти стан сторінки в
  HTML
  – Стан «мандрує» між клієнтом і сервером разом
    із POST-requests and HTML-responses
Events
• Raise -- asp:Button OnClick
• Реалізація – ID кнопки передається в тілі
  POST запиту
• Changed – asp.TextBox OnTextChanged
• Реалізація – значення з POST запиту
  порівнюється з попереднім значенням
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>
Demo
Validation.aspx
Data Binding
• <asp:DropDownList>
  – DataSource property
  – DataBind() method
  – DataTextField property
  – DataValueField property
Demo
DataBindingDropDown.aspx
Web.config transformations
• Web.config
  – Web.Debug.config
  – Web.Release.config
• Дозволяє визначати різні налаштування
  для різних build-конфігурацій
• Що таке build-конфігурації
JavaScript Demo
• JSExample.aspx
• Файл ~/Scripts/Common.js
• <script>
• Порядок завантаження скриптів та HTML
  елементів важливий
• Visual Studio can debug JavaScript
• ScriptManager -- для завантаження
  скриптів
UpdatePanel
• Дозволяє оновлювати частини сторінки
  незалежно від решти (AJAX)
• Asynchronous JavaScript and XML
• Усуває необхідність перевантаження
  (reload) всієї сторінки
• Не вимагає знання JavaScript
• На формі повинен бути ScriptManager
Demo
UpdatePanel.aspx
Demo
Java script in real ASP.NET projects
FormsAuthentication
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
IHttpModule
HttpModule – це обробник HTTP запитів який
обробляє всі запити до сайту перед їх
безпосереднім виконанням.
Demo
IHttpModule in real projects
IHttpHandler
HttpHandler - це обробник HTTP запитів який
обробляє певний тип запитів.
Demo
IHttpHandler in real projects

More Related Content

PPTX
ASP.Net basics
PPTX
Mobile applications development
PPTX
Service oriented programming
PPTX
PPTX
Design patterns part 2
PDF
Social networking
PPT
Lec11 користувацькi елементи керування
PPTX
ASP.Net Core Services
ASP.Net basics
Mobile applications development
Service oriented programming
Design patterns part 2
Social networking
Lec11 користувацькi елементи керування
ASP.Net Core Services

Similar to ASP.Net part 2 (20)

PPTX
Web service lecture
PPT
Lec12 користувацькi елементи керування ed
PPTX
10 asp.net
PPTX
Борис Могила "Isomorphic React apps in production"
PDF
вашенюк
PDF
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...
PPTX
Aspnet core
PPTX
Design patterns part 1
PDF
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
PDF
Ember.js. Init...
PDF
"Instant loading: Improving your website speed", Yozhef Hisem
PPT
Lec16 промiжне програмне забезпечення
PPT
5 Підсистема введення/виведення. OPC
PDF
"gRPC-based microservice communication: pros and cons based on our experience...
PPTX
Технологія кешування даних
PDF
Alexey Borisenko - Network Programmability using Python
PDF
Розробка веб-сайту. Основні етапи
PPTX
Docsvision Кирильчук Сергій
PDF
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Web service lecture
Lec12 користувацькi елементи керування ed
10 asp.net
Борис Могила "Isomorphic React apps in production"
вашенюк
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...
Aspnet core
Design patterns part 1
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
Ember.js. Init...
"Instant loading: Improving your website speed", Yozhef Hisem
Lec16 промiжне програмне забезпечення
5 Підсистема введення/виведення. OPC
"gRPC-based microservice communication: pros and cons based on our experience...
Технологія кешування даних
Alexey Borisenko - Network Programmability using Python
Розробка веб-сайту. Основні етапи
Docsvision Кирильчук Сергій
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Ad

More from Victor Matyushevskyy (15)

PPTX
Multithreading and parallelism
PPTX
Java script + extjs
PPTX
Automated testing
PPTX
Основи Баз даних та MS SQL Server
PPTX
PPTX
Windows forms
PPTX
PPTX
06.1 .Net memory management
PPTX
05 functional programming
PPTX
04 standard class library c#
PPTX
#3 Об'єктно орієнтоване програмування (ч. 2)
PPTX
#2 Об'єктно орієнтоване програмування (ч. 1)
PPTX
#1 C# basics
PPTX
#0 Вступна лекція
Multithreading and parallelism
Java script + extjs
Automated testing
Основи Баз даних та MS SQL Server
Windows forms
06.1 .Net memory management
05 functional programming
04 standard class library c#
#3 Об'єктно орієнтоване програмування (ч. 2)
#2 Об'єктно орієнтоване програмування (ч. 1)
#1 C# basics
#0 Вступна лекція
Ad

ASP.Net part 2

  • 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 і відправляється клієнту
  • 5. HTTP sniffers • Fiddler – дозволяє логувати HTTP трафік
  • 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>
  • 11. Data Binding • <asp:DropDownList> – DataSource property – DataBind() method – DataTextField property – DataValueField property
  • 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
  • 17. Demo Java script in real ASP.NET projects
  • 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 запитів який обробляє всі запити до сайту перед їх безпосереднім виконанням.
  • 22. IHttpHandler HttpHandler - це обробник HTTP запитів який обробляє певний тип запитів.