230 likes | 372 Views
3 Technologien im Wettstreit um Ihre nächste Webanwendung. AJAX, Silverlight oder XBAP?. Rainer Worbis Markus Unterauer. Entwickler, cubido business solutions gmbh. Zielsetzung Kennenlernen der 3 Technologien Stärken / Schwächen aus Entwicklersicht Kurzer Einblick in die Programmierung
E N D
3 Technologien im Wettstreit um Ihre nächste Webanwendung AJAX, Silverlight oder XBAP? Rainer Worbis Markus Unterauer Entwickler, cubido businesssolutionsgmbh
Zielsetzung • Kennenlernen der 3 Technologien • Stärken / Schwächen aus Entwicklersicht • Kurzer Einblick in die Programmierung • Wann nehme ich was und wann nicht? • Agenda • Pimpen einer ASP.NET Webapp mit AJAX • Selbe Applikation, andere Technologie (Silverlight) • Und jetzt nochmal mit XBAP • Wann nehme ich was und wann nicht AJAX, Silverlight oder XBAP? Zielsetzung und Agenda
Asynchronous JavaScript and XML • Verlagerung von UI-Logik zum Client • Asynchrone Kommunikation mit Server • Realisiert über Browser XmlHttpObject • Zielsetzung • Bessere Useability • Weniger Traffic bei der Client / Serverkommunikation AJAX, Silverlight oder XBAP? AJAX
Partial Page Updates • Bei Postback nur Teil der Seite aktualisieren • ControlExtender • Zusatzfunktionen für bestehende Controls • JavaScript Erweiterungen • Neue Sprachfeatures • Zugriff auf Webservices • ControlToolkit • Extender (AutoComplete, MaskedEdit, …) • Neue Controls (Rating, …) AJAX, Silverlight oder XBAP? AJAX - Überblick
DEMO Vergleich ASP.NET Webapp ohne und mit AJAX AJAX, Silverlight oder XBAP? AJAX
AJAX aktivieren Einfügen eines Updatepanels Updateprogress (Achtung! JavaScripts!) AJAX, Silverlight oder XBAP? AJAX – Partial Page Update <Ajax:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" /> <asp:UpdatePanelrunat="server" UpdateMode="Conditional" ID="ListUpdatePanel"> <ContentTemplate>…</ContentTemplate> <Triggers>…</Triggers> </asp:UpdatePanel> <asp:UpdateProgress ID=„MyProgress" runat="server" AssociatedUpdatePanelID=„MyUpdatePanel"> <ProgressTemplate>…</ProgressTemplate> </asp:UpdateProgress>
AutoCompleteExtender Rating AJAX, Silverlight oder XBAP? AJAX – Extender und Toolkit <Ajax:AutoCompleteExtenderrunat="server" ID=„myAutoComplete“ TargetControlID=„MyTextbox" ServicePath=„MyService.asmx“ ServiceMethod=„MyMethod“ MinimumPrefixLength="2„ CompletionSetCount="5„ /> <Ajax:Rating ID=“MyRating" runat="server” CurrentRating='<%# Convert.ToInt32 (DataBinder.Eval(Container.DataItem, "Rating")) %>‚ MaxRating="5„ />
Registrieren des Services Aufrufen per JavaScript AJAX, Silverlight oder XBAP? AJAX – JavaScript Erweiterung <asp:ScriptManagerProxy ID=„MyProxy" runat="server"> <Services> <asp:ServiceReference Path=„MyService.asmx"/> </Services> </asp:ScriptManagerProxy> functionMyAction (){ MyService.MyGetData(OnWSRequestComplete); } functionOnWSRequestComplete(results) { vartext = results.FirstName + results.LastName; $get(‚MyLabel').innerHTML = text; }
AJAX, Silverlight oder XBAP? AJAX – Partial Update Pagesize 172 kBinitiales Laden (Seite + Bilder) 89 Byte AutoComplete 27 kB Liste neu laden
Version SL 2.0 • Browser Plugin • Microsoft IE • Firefox • Safari • Betriebssystem • Windows • Linux (via Moonlight) • Mac AJAX, Silverlight oder XBAP? Silverlight - Überblick
Eigene CLR • C#, VB, Python, Ruby, JScript • XAML • Subset + SL Spezifika der .NET CLR • Entwicklungsumgebung • Visual Studio • Eclipse AJAX, Silverlight oder XBAP? Silverlight – Programmierung
Silverlight ist ein in HTML eingebettetes Objekt AJAX, Silverlight oder XBAP? Silverlight – Verwendung <objectdata="data:application/x-silverlight," type="application/x-silverlight-2-b2" <paramname="source" value="ClientBin/devCamp08_SilverLight01.xap"/> <paramname="onerror" value="onSilverlightError" /> <paramname="background" value="white" /> </object>
AJAX, Silverlight oder XBAP? Silverlight - Controls • Viele eigene Controls • 3rd Party Controls • SilverligthControl Pack (zur PDC2008) • Layouts • Grid • StackPanel • Canvas
Nur ein Fenster • Kein Zugriff auf das Filesystem (außer Benutzergesteuerter FileOpenDialog) • Keinen Status am Server (ViewStateetc) • Isolated Storage am Client • Bestimmt Features fehlen • Anzeige von GIF Dateien • Nur asynchrone Datenzugriffe AJAX, Silverlight oder XBAP? Silverlight – Einschränkungen
DEMO • Look andFeel • XAML • Daten lesen AJAX, Silverlight oder XBAP? Silverlight
.NET Anwendung die vom IE gehostet wird Die am Client installierte .NET Runtime wird verwendet Security Zones Wie Click Once nur in Local Internet Files AJAX, Silverlight oder XBAP? XBAP - Überblick
Abgrenzung zu Silverlight • Unterstützung der gesamten CLR Klassenbibliothek • Es gibt „Full Trust“ • Abgrenzung zu Fullclient (ClickOnce) • Theoretisch wenig Benutzerberechtigungen zur Installation nötig • Es läuft immer auch ein Browserfenster mit AJAX, Silverlight oder XBAP? XBAP - Warum
DEMO • Look andFeel • XAML • Daten lesen AJAX, Silverlight oder XBAP? XBAP
AJAX, Silverlight oder XBAP? Vergleich AJAX, Silverlight, XBAP
AJAX, Silverlight oder XBAP? Vergleich AJAX, Silverlight, XBAP
Cubido Bloghttp://www.cubido.at/Blog/tabid/176/Default.aspx Microsoft AJAX Websitehttp://www.asp.net/ajax/ Microsoft Silverlight Website http://www.silverlight.net AJAX, Silverlight oder XBAP? Links
3 Technologien im Wettstreit um Ihre nächste Webanwendung AJAX, Silverlight oder XBAP? Rainer Worbis Markus Unterauer Entwickler, cubido businesssolutionsgmbh