23
ASP.NET Part 2

ASP.Net part 2

Embed Size (px)

Citation preview

Page 1: ASP.Net part 2

ASP.NETPart 2

Page 2: ASP.Net part 2

Як працює 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

Demo

Viewstate.aspx

Page 4: ASP.Net part 2

Page lifecycle (основні фази)• Instantiate – будується дерево контролів з декларативного

опису (markup)

• Init – програмно встановлюються властивості контролів + створюються динамічні контроли

• Load View State – відновлюються властивості

• Load Postback Data – встановлюються властивості, передані користувачем через POST

• Raise Postback Events – OnClick, OnChanged – працює логіка програми, програмно встановлюються властивості контролів

• Save View State – зберігаються програмно змінені властивості

• Render – з дерева контролів будується HTML і відправляється клієнту

Page 5: ASP.Net part 2

HTTP sniffers

• Fiddler – дозволяє логувати HTTP трафік

Page 6: ASP.Net part 2

Web Server Controls

• Генерують HTML (render) динамічно

• Визначаються в *.aspx розмітці

• Мають events (server-side)

• Code-behind класи працюють з контролами

• Контроли можуть створюватись динамічно

• Контроли зберігають стан у ViewState

Page 7: ASP.Net part 2

View State

• Потрібен для збереження програмно встановлених властивостей контролів між postback’ами

• Тому що HTTP не зберігає стан (stateless)

• View state – спосіб зберегти стан сторінки в HTML

– Стан «мандрує» між клієнтом і сервером разом із POST-requests and HTML-responses

Page 8: ASP.Net part 2

Events

• Raise -- asp:Button OnClick

• Реалізація – ID кнопки передається в тілі POST запиту

• Changed – asp.TextBox OnTextChanged

• Реалізація – значення з POST запиту порівнюється з попереднім значенням

Page 9: ASP.Net part 2

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

Demo

Validation.aspx

Page 11: ASP.Net part 2

Data Binding

• <asp:DropDownList>

– DataSource property

– DataBind() method

– DataTextField property

– DataValueField property

Page 12: ASP.Net part 2

Demo

DataBindingDropDown.aspx

Page 13: ASP.Net part 2

Web.config transformations

• Web.config

– Web.Debug.config

– Web.Release.config

• Дозволяє визначати різні налаштування для різних build-конфігурацій

• Що таке build-конфігурації

Page 14: ASP.Net part 2

JavaScript Demo

• JSExample.aspx

• Файл ~/Scripts/Common.js

• <script>

• Порядок завантаження скриптів та HTML елементів важливий

• Visual Studio can debug JavaScript

• ScriptManager -- для завантаження скриптів

Page 15: ASP.Net part 2

UpdatePanel• Дозволяє оновлювати частини сторінки

незалежно від решти (AJAX)

• Asynchronous JavaScript and XML

• Усуває необхідність перевантаження (reload) всієї сторінки

• Не вимагає знання JavaScript

• На формі повинен бути ScriptManager

Page 16: ASP.Net part 2

Demo

UpdatePanel.aspx

Page 17: ASP.Net part 2

Demo

Java script in real ASP.NET projects

Page 18: ASP.Net part 2

FormsAuthentication

Page 19: ASP.Net part 2

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

IHttpModule

HttpModule – це обробник HTTP запитів який обробляє всі запити до сайту перед їх безпосереднім виконанням.

Page 21: ASP.Net part 2

Demo

IHttpModule in real projects

Page 22: ASP.Net part 2

IHttpHandler

HttpHandler - це обробник HTTP запитів який обробляє певний тип запитів.

Page 23: ASP.Net part 2

Demo

IHttpHandler in real projects