340 likes | 432 Views
Explore the history, challenges, and solutions of AJAX technology in ASP.NET. Learn about the objectives, tools, and benefits of ASP.NET AJAX for creating dynamic web applications efficiently. Discover the integration with existing .NET platform, advanced components, and simplified service models for enhanced user experience.
E N D
Who’s to blame? Jeppe Rørbæk jepper@microsoft.com +45 51 57 81 67 http://blogs.msdn.com/jepper Developer Evangelist, Development & Platform StrategyMCP, MCAD, MCSD, MCT
What’s on the menu? AJAX – En smudsig historie? ASP.NET AJAX – Rengøring med de fede handsker ASP.NET AJAX – Rengøring AS ASP.NET AJAX Control Toolkit – Gør det selv, og gør det rigtigt
AJAX – Historie 1596
AJAX – Historie 1942
AJAX – Historie 1953
AJAX – Historie 2005?
AJAX - Asynchronous JavaScript and XML • Jesse James Garret – 18. februar 2005 - definition • “Standards-based presentation using XHTML and CSS” • “Dynamic display and interaction using the Document Object Model” • “Data interchange and manipulation using XML and XSLT” • “Asynchronous data retrieval using XMLHttpRequest” • “And JavaScript binding everything together” • Også omtalt som ”Enabler of Web 2.0”. • I må komme herop bagefter, hvis det var en af de andre i var ude efter.
AJAX – De overordnedemål? • Partiel rendering • Applikationsdele på klienten (JavaScript) • Demo (Nikhilk)
“AJAX” – Erblevetbenyttetlænge • Teknologier • IFrame’s • Callbacks med ASP.NET 2.0 • XmlHttp (IE 5.5) • Demo (old cr..)
Problematikker • Typisk opgave • Partiel renderingMulighed for opdatering af en mindre del af en side(det lyder jo egentlig enkelt ... ?) • Typiske problemer - A(argh)JAX • Browserforskelligheder • Browserindstillinger • JavaScript / ActiveX • 2 programmeringsmodeller (og sprog) • Integration med server applikation • Tilgang til kontroltræet • Tid! • Demo
Hvad er behovet? • Udvikling af ”ajaxificerede” sider skal være nemt og fleksibelt • ”Drag/drop løsninger”. • Problemer med browserforskelligheder skal minimeres. • Kompleksitet omkring XmlHttp skal fjernes. • Man skal kunne gøre som man plejer. • Man skal kunne udvikle avancerede (rige) applikationer på klientsiden på en fornuftig måde, og inden for rimelig tid. • Skal være baseret på eksisterende standarder, og ikke kræve installation hos klienten.
Hensigten med ASP.NET AJAX • Højproduktivt platform for udvikling af AJAX-style browser applikationer. • Færdige komponenter til løsning af typiske opgaver • Gør AJAX tilgængeligt for alle (Drag/Drop AJAX) • (Hvilket jo så også i mere eller mindre grad er tilfældet for andre AJAX baserede frameworks/komponenter) • Uproblematisk integration med den eksisterende .NET platform • Fuldt integreret med ASP.NET • Enkel model for brug af services • (Ikke nødvendigvis tilfældet med med andre frameworks/komponenter) • Fuld understøttelse i værktøjer • I første omgang bliver jo nok vores egne ;o) • Kompatibilitet og tilgængelighed • Skal fungere i ”alle” browsere • Ingen installation hos klienten
ASP.NET 2.0 Page Framework, Server Controls Application Services Arkitektur – hvad er budet så (beskrivelse) Web Services HTML markup, CSS, and Script ASP.NET Pages AJAX Service Proxies Microsoft Ajax Library ASP.NET 2.0 Ajax Extensions Control Layer App Services Bridge Ajax-Enabled Server Controls UI Layer Web Services Bridge Networking Layer Base Class Library Script Core Browser Compatibility Server Framework Client Framework
Microsoft AJAX Library (Client side) • Browser Compatibility Layer • Abstraherer forskellighederne i diverse browsere • Core Services • Javascript extensions (OO features) • Datatyper og serialisering • ASP.NET AJAX Base Class Library • ”.NET faciliteter” (StringBuilder, Debug, Event, IDisposable) • Profile og Authentication • Udvidet fejlhåndtering • Netværkslag • Kommunikation med webservices • Abstraktion over XmlHttp • UI Layer • Parsing af XML Scripts • Bindings • Behaviors • UI Components • Control Layer • ListView, MapControl, Timer, Counter etc...
ASP.NET 2.0 AJAX Extensions (Server side) • Server kontroller • UpdatePanel mv. • WebServices • ProfileWebService • AuthenticationWebService • HttpHandlers • ScriptHandlerFactory • MultiRequestHandler (batchcalls) • GlobalizationHandler • HttpModules • ScriptModule • BridgeModule • WebResourceCompressionModule
Hvad giver det så? • Browserkompetabilitet • Clientside compatibilitylayer • Kompleksitet omkring asynkrone request med XmlHttp • Indpakket i networklayer • Forskellige programmeringsmodeller • OO features til JavaScript • Browserindstillinger • Visse ting fungerer både med og uden JavaScript! • Kortere udviklingstid • Nem udvikling med indbyggede kontroller • Adgang til eksisterende Application Services fra klienten • Profile og Authentication services • Server og klientudvikling er bragt tættere på hinanden • OO Features i JavaScript • Udvidede muligheder for udvikling af applikationer på klienten
Partiel rendering med UpdatePanels • Demo • Page lifecycle • Rendering • Hvor ”partielt” er det egentlig?
Brug af services • Hvad skal der til? • Hvad foregår der? • Demo
Lille opsummering • Flere måder at arbejde med partiel rendering • UpdatePanel’s • WebServices • PageMethods !
Men... Er det ikke stadig noget fniller? • JavaScript på WebForms? • Extenders • Tilføj behaviors til eksisterende UI komponenter • Demo (DragOverlayExtender, AutoCompleteExtender)
ASP.NET AJAX Control Toolkit • En ordentlig ...fuld af fede extenders • Nogle få selvstændige kontroller • Gode værktøjer for udvikling af egne AJAX kontroller og extenders • Bunker af sourcekode • Visual Studio Templates • TestHarness
Application Services • Indbygget mulighed for at udnytte ASP.NET 2.0 Application Services alá AJAX • Eksempel : DragOverLayExtender / ProfileService
ASP.NET AJAX Control Toolkit • Demo
Udvikling af egne extenders • Benyt de medfølgende Visual Studio Templates • Inspicér eksisterende extenders og ”lad dig inspirere” • Skriv den færdig • Brug den • Eksempel (ImageCropper)
ASP.NET Typiske arbejdstyper • Opdatering af almindelige deklarativt opbyggede sider • UpdatePanels • Clientside adgang til services • Opdatering af komponentbaserede sider • UserControls • CustomControls (JokeBrowser) • Konstruktion af ny AJAX UX • Control Toolkit (CityLookUpExtender, ImagePartExt) • TemplateUxService?
Hvordan kommer man igang - 1 • http://ajax.asp.net • Produktmodenhed • Release version 1.0 • Pakker • ASP.NET AJAX Extensions • ASP.NET AJAX Control Toolkit • ASP.NET AJAX Futures CTP • Microsoft AJAX Library • Docs, eksempler og videoer++
Links • http://ajax.asp.net • http://www.nikhilk.net • http://projects.nikhilk.net/ • http://weblogs.asp.net/bleroy • http://weblogs.asp.net/scottgu • http://www.telerik.com • http://www.daniel-zeiss.de/AJAXComparison/Results.htm • http://aspnetresources.com/blog/ms_ajax_cheat_sheets_batch2.aspx • http://blogs.msdn.com/delay/archive/2007/02/08/toolkit-talk-take-two-spoke-at-the-techready4-conference.aspx • De viste eksempler lægges til download på http://blogs.msdn.com/jepper
Kontakt • For yderligere spørgsmål, kodeeksempler og/eller lignende Jeppe Rørbæk jepper@microsoft.com +45 51 57 81 67 http://blogs.msdn.com/jepper