340 likes | 431 Vues
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 Strategy MCP, MCAD, MCSD, MCT. What’s on the menu?. AJAX – En smudsig historie?. ASP.NET AJAX – Rengøring med de fede handsker.
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