AJAX, SILVERLIGHT ODER XBAP? 3 Technologien im Wettstreit um Ihre nächste Webanwendung
Rainer WorbisMarkus UnterauerEntwickler, cubido business solutions gmbh
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
Control Extender Zusatzfunktionen für bestehende Controls
JavaScript Erweiterungen Neue Sprachfeatures Zugriff auf Webservices
Control Toolkit Extender (AutoComplete, MaskedEdit, …) Neue Controls (Rating, …)
AJAX, Silverlight oder XBAP?
AJAX - ÜBERBLICK
DEMOVergleich 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:UpdatePanel runat="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:AutoCompleteExtender runat="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>
function MyAction (){ MyService.MyGetData(OnWSRequestComplete);}
function OnWSRequestComplete(results) { var text = results.FirstName + results.LastName; $get(‚MyLabel').innerHTML = text;}
AJAX, Silverlight oder XBAP?
AJAX – PARTIAL UPDATE PAGESIZE
172 kB initiales Laden(Seite + Bilder)
89 Byte AutoComplete27 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
<object data="data:application/x-silverlight," type="application/x-silverlight-2-b2"<param name="source" value="ClientBin/devCamp08_SilverLight01.xap"/><param name="onerror" value="onSilverlightError" /><param name="background" value="white" />
</object>
Viele eigene Controls 3rd Party Controls Silverligth Control Pack
(zur PDC2008)
Layouts Grid StackPanel Canvas
AJAX, Silverlight oder XBAP?
SILVERLIGHT - CONTROLS
Nur ein Fenster Kein Zugriff auf das Filesystem (außer
Benutzergesteuerter FileOpenDialog) Keinen Status am Server (ViewState etc) Isolated Storage am Client Bestimmt Features fehlen
Anzeige von GIF Dateien Nur asynchrone Datenzugriffe
AJAX, Silverlight oder XBAP?
SILVERLIGHT – EINSCHRÄNKUNGEN
DEMO• Look and Feel• 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 and Feel• XAML• Daten lesen
AJAX, Silverlight oder XBAP?
XBAP
ASP.NET AJAX Silverlight XBAP FullclientInteraktivität der GUI - + ++ +++ ++++Verfügbare Controls +++ ++++ + (Drittanbieter) +++ +++Release Status 2.0 1.0 2.0 3.5 3.5In ASP.NET App integrierbar
Ja Ja Ja Nein Nein
Browser Alle Browser nur IE, FireFox IE, FireFox, Safari nur IE KeineInhalt indizierbar Ja Teilweise Nein Nein NeinZugriff auf Clientfiles Nein Nein Nein Ja (mit Fulltrust) JaOffline Fähigkeit Nein Nein Nein Nein JaClient Betriebssystem Alle Alle Windows, Mac
teilw. LinuxNur Windows Nur Windows, teilw.
Linux
Client Requirements Keine JavaScript Silverlight Plugin .NET Framework 3.5
.NET Framework 3.5
Permissions am Client Keine Keine Plugin installieren
Teilw. Fulltrust Teilw. Fulltrust
Wird am Client installiert
Nein Nein Nein (nur Temp. Internet Files)
Nein (nur Temp. Internet Files)
Ja
Clientbelastung für GUI Niedrig Mittel Mittel Hoch Hoch
AJAX, Silverlight oder XBAP?
VERGLEICH AJAX, SILVERLIGHT, XBAP
ASP.NET AJAX Silverlight XBAP FullclientZugriff auf Daten von Webserver von Webserver
und Clientvon Client von Client von Client
Zugriff auch Services Server alles (WS, SQL, …)
Server alles, Client nur WS
nur WS Alles (WS, SQL, …) Alles (WS, SQL, …)
Webserver Windows Windows Alle Alle KeineServerbelastung für GUI Hoch Hoch Niedrig Niedrig Keine
Programmiersprachen .NET, JavaScript, VBScript
.NET, JavaScript C#, VB.net, XAML, JavaScript
.NET, XAML .NET, XAML
Debugging-möglichkeiten
++ + + +++ ++++
Verwendung bestehender Assemblies
Ja Ja Nein (eigene Core DLLs)
Ja Ja
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
AJAX, SILVERLIGHT ODER XBAP? 3 Technologien im Wettstreit um Ihre nächste Webanwendung
Rainer WorbisMarkus UnterauerEntwickler, cubido business solutions gmbh