Who’s to blame?

34
Who’s to blame? Jeppe Rørbæk [email protected] +45 51 57 81 67 http://blogs.msdn.com/jepper Developer Evangelist, Development & Platform Strategy MCP, MCAD, MCSD, MCT

description

Who’s to blame?. Jeppe Rørbæk. [email protected] +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. - PowerPoint PPT Presentation

Transcript of Who’s to blame?

Page 1: Who’s to blame?

Who’s to blame?

Jeppe Rørbæk

[email protected]+45 51 57 81 67http://blogs.msdn.com/jepper

Developer Evangelist, Development & Platform StrategyMCP, MCAD, MCSD, MCT

Page 2: Who’s to blame?

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

Page 4: Who’s to blame?

AJAX – Historie

1942

Page 5: Who’s to blame?

AJAX – Historie

1953

Page 7: Who’s to blame?

AJAX – Historie

2005?

Page 8: Who’s to blame?

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.

Page 9: Who’s to blame?

AJAX - Asynchronous JavaScript and XML

Page 10: Who’s to blame?

AJAX - Asynchronous JavaScript and XML

Page 11: Who’s to blame?

AJAX – De overordnede mål?

Partiel renderingApplikationsdele på klienten (JavaScript)

Demo (Nikhilk)

Page 12: Who’s to blame?

“AJAX” – Er blevet benyttet længe

TeknologierIFrame’sCallbacks med ASP.NET 2.0XmlHttp (IE 5.5)

Demo (old cr..)

Page 13: Who’s to blame?

ProblematikkerTypisk opgave

Partiel renderingMulighed for opdatering af en mindre del af en side(det lyder jo egentlig enkelt ... ?)

Typiske problemer - A(argh)JAXBrowserforskellighederBrowserindstillinger

JavaScript / ActiveX2 programmeringsmodeller (og sprog)Integration med server applikation

Tilgang til kontroltræetTid!

Demo

Page 14: Who’s to blame?

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.

Page 15: Who’s to blame?

Hensigten med ASP.NET AJAXHøjproduktivt platform for udvikling af AJAX-style browser applikationer.

Færdige komponenter til løsning af typiske opgaverGø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 platformFuldt integreret med ASP.NETEnkel model for brug af services(Ikke nødvendigvis tilfældet med med andre frameworks/komponenter)

Fuld understøttelse i værktøjerI første omgang bliver jo nok vores egne ;o)

Kompatibilitet og tilgængelighedSkal fungere i ”alle” browsereIngen installation hos klienten

Page 16: Who’s to blame?

Arkitektur – hvad er budet så (beskrivelse)

Server FrameworkClient Framework

ASP.NET 2.0 Ajax Extensions

Ajax-Enabled Server

Controls

App Services Bridge

Web Services Bridge

Microsoft Ajax Library

Control Layer

Script Core

Base Class Library

UI Layer

Browser Compatibility

ASP.NET 2.0

Application Services

Page Framework,

Server Controls

ASP.NET Pages Web ServicesHTML markup,

CSS, andScript

AJAXServiceProxies

Networking Layer

Page 17: Who’s to blame?

Microsoft AJAX Library (Client side)Browser Compatibility Layer

Abstraherer forskellighederne i diverse browsereCore Services

Javascript extensions (OO features)Datatyper og serialisering

ASP.NET AJAX Base Class Library”.NET faciliteter” (StringBuilder, Debug, Event, IDisposable)Profile og AuthenticationUdvidet fejlhåndtering

NetværkslagKommunikation med webservicesAbstraktion over XmlHttp

UI LayerParsing af XML ScriptsBindingsBehaviorsUI Components

Control LayerListView, MapControl, Timer, Counter etc...

Page 18: Who’s to blame?

ASP.NET 2.0 AJAX Extensions (Server side)

Server kontrollerUpdatePanel mv.

WebServicesProfileWebServiceAuthenticationWebService

HttpHandlersScriptHandlerFactoryMultiRequestHandler (batchcalls)GlobalizationHandler

HttpModulesScriptModuleBridgeModuleWebResourceCompressionModule

Page 19: Who’s to blame?

Hvad giver det så?Browserkompetabilitet

Clientside compatibilitylayer

Kompleksitet omkring asynkrone request med XmlHttpIndpakket i networklayer

Forskellige programmeringsmodellerOO features til JavaScript

BrowserindstillingerVisse ting fungerer både med og uden JavaScript!

Kortere udviklingstidNem udvikling med indbyggede kontroller

Adgang til eksisterende Application Services fra klientenProfile og Authentication services

Server og klientudvikling er bragt tættere på hinandenOO Features i JavaScriptUdvidede muligheder for udvikling af applikationer på klienten

Page 20: Who’s to blame?

Partiel rendering med UpdatePanels

DemoPage lifecycleRendering

Hvor ”partielt” er det egentlig?

Page 21: Who’s to blame?

Brug af services

Hvad skal der til?

Hvad foregår der?

Demo

Page 22: Who’s to blame?

Lille opsummering

Flere måder at arbejde med partiel renderingUpdatePanel’sWebServicesPageMethods !

Page 23: Who’s to blame?

Men... Er det ikke stadig noget fniller?

JavaScript på WebForms?

ExtendersTilføj behaviors til eksisterende UI komponenter

Demo (DragOverlayExtender, AutoCompleteExtender)

Page 24: Who’s to blame?

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

Page 25: Who’s to blame?

Application Services

Indbygget mulighed for at udnytte ASP.NET 2.0 Application Services alá AJAX

Eksempel : DragOverLayExtender / ProfileService

Page 26: Who’s to blame?

ASP.NET AJAX Control Toolkit

Page 27: Who’s to blame?

ASP.NET AJAX Control Toolkit

Demo

Page 28: Who’s to blame?

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)

Page 29: Who’s to blame?

ASP.NET Typiske arbejdstyper

Opdatering af almindelige deklarativt opbyggede siderUpdatePanelsClientside adgang til services

Opdatering af komponentbaserede siderUserControlsCustomControls (JokeBrowser)

Konstruktion af ny AJAX UXControl Toolkit (CityLookUpExtender, ImagePartExt)TemplateUxService?

Page 30: Who’s to blame?

Hvordan kommer man igang - 1

http://ajax.asp.net

ProduktmodenhedRelease version 1.0

PakkerASP.NET AJAX Extensions

ASP.NET AJAX Control ToolkitASP.NET AJAX Futures CTP

Microsoft AJAX Library

Docs, eksempler og videoer++

Page 31: Who’s to blame?

Hvordan kommer man igang - 2

Page 32: Who’s to blame?

Hvordan kommer man igang - 3

Page 34: Who’s to blame?

Kontakt

Jeppe Rørbæk

[email protected]+45 51 57 81 67http://blogs.msdn.com/jepper

For yderligere spørgsmål, kodeeksempler og/eller lignende