Asynchronous JavaScript and XML Custom
Transkrypt
Asynchronous JavaScript and XML Custom
Asynchronous JavaScript and XML Custom Controls, User Controls ASP.NET Wiktor Zychla Uniwersytet Wrocławski Instytut Informatyki 29 listopad 2005 Asynchronous JavaScript and XMLCustom Controls, User Controls – p.1/18 AJAX AJAX (Asynchronous Javascript and XML) - nowa nazwa dla składanki 5 technologii: • • • • • prezentacja w HTML/XHTML... ...danych XML... ...przenoszonych przez XMLHttpRequest... ...przetwarzanych w modelu DOM... ...za pomoca˛ Javascript. Na przykład Google Suggest czy Google Maps. Asynchronous JavaScript and XMLCustom Controls, User Controls – p.2/18 AJAX Callback zamiast postback: • do serwera nie jest odsyłany </FORM> jak przy postback • zamiast tego używa si˛ e JavaScript do zbudowana żadania ˛ skierowanego do określonego miejsca na serwerze • serwer odpowiada zwykłym tekstem lub XML • klient przetwarza odpowiedź za pomoca˛ JavaScript Asynchronous JavaScript and XMLCustom Controls, User Controls – p.3/18 AJAX Asynchronous JavaScript and XMLCustom Controls, User Controls – p.4/18 AJAX Różne implementacje w ramach .NET, m.in.: • Scripting Callbacks (ASP.NET 2.0) - nie wybiega znacznie poza wariant klasyczny • AJAX.NET (atrybuty + logika serwera mapowana na logik˛e klienta) - pi˛ekna architektura ale dyskusyjna wydajność • inne... W ASP.NET 2.0 niektóre funkcje komponentów wbudowanych oparto o Scripting Callbacks, na przykład dynamicznie rozwijajacy ˛ w˛ezły TreeView, czy nie wymagajacy ˛ Postback GridView. Asynchronous JavaScript and XMLCustom Controls, User Controls – p.5/18 AJAX Zalety AJAX: • rewelacyjne zachowanie si˛ e interfejsu użytkownika aplikacji Web • znaczne zmniejszenie ruchu klient-serwer • możliwość Wady AJAX: • nie wspierany przez wszystkie przegladarki ˛ • w uj˛ eciu klasycznym - niewygodny do integracji z istniejacymi ˛ technologiami • wiele różnych implementacji w tym oficjalne i nieoficjalne • wymaga programowania JavaScript Asynchronous JavaScript and XMLCustom Controls, User Controls – p.6/18 AJAX DEMO: minimalny przykład Asynchronous JavaScript and XMLCustom Controls, User Controls – p.7/18 AJAX Literatura: • Jessie James Garret - Ajax: A New Approach to Web Applications • Ajax.NET - A free library for the Microsoft .NET Framework • Dino Esposito - Script Callbacks in ASP.NET Asynchronous JavaScript and XMLCustom Controls, User Controls – p.8/18 Kontrolki ASP.NET • • Podobnie jak w przypadku aplikacji desktop, programista ma możliwość tworzenia własnych komponentów ASP.NET. Okoliczności w których warto pisać własne kontrolki sa˛ dokładnie takie same. Dwa modele tworzenia kontrolek: • deklaratywny - User Controls • programowany - Custom Controls Asynchronous JavaScript and XMLCustom Controls, User Controls – p.9/18 User Controls • • • • • pliki *.ASCX budowane wizualnie nie wymagaja˛ kompilacji przy próbie użycia kompilator tworzy kod klasy dla kontrolki dokładnie tak samo jak w przypadku stron (*.ASPX) z tego powodu w przypadku tworzenia dynamicznego nie można używać new tylko LoadControl Zastosowanie: fragmenty interfejsu użytkownika o wielokrotnym zastosowaniu. Asynchronous JavaScript and XMLCustom Controls, User Controls – p.10/18 User Controls DEMO: SiteHeader+Site Footer Asynchronous JavaScript and XMLCustom Controls, User Controls – p.11/18 Custom controls • • • • • klasy dziedziczace ˛ z Control lub WebControl zawartość budowana w kodzie wymagaja˛ kompilacji osadzane w zestawach jak wszystkie inne klasy w przypadku tworzenia dynamicznego wystarczy new Zastosowanie: jakakolwiek logika po stronie serwera, która może (ale nie musi) mieć jakaś ˛ postać wizualna˛ Asynchronous JavaScript and XMLCustom Controls, User Controls – p.12/18 Custom controls Modele dziedziczenia: • Control - dla elementów niewizualnych • WebControl - dla elementów wizualnych, automatycznie udost˛epnia m.in. Font, Width, Height, ForeColor, BackColor • jakakolwiek istniejaca ˛ kontrolka, np. TextBox czy Button Asynchronous JavaScript and XMLCustom Controls, User Controls – p.13/18 Custom Controls DEMO: kontrolki Control i WebControl Asynchronous JavaScript and XMLCustom Controls, User Controls – p.14/18 Custom Controls DEMO: kontrolki Control i WebControl Asynchronous JavaScript and XMLCustom Controls, User Controls – p.15/18 Custom Controls DEMO: kontrolka niewizualna Asynchronous JavaScript and XMLCustom Controls, User Controls – p.16/18 User vs Custom Controls User Custom deployment single app możliwy GAC layout łatwiejszy statyczny dowolny design-time słaby duże wsparcie wydajność taka sama taka sama Asynchronous JavaScript and XMLCustom Controls, User Controls – p.17/18 Kontrolki ASP.NET Literatura: • Nikhil Kothari, Vandana Datye - Developing ASP.NET Server Controls and Components Asynchronous JavaScript and XMLCustom Controls, User Controls – p.18/18