34
[email protected] Massendaten auf dem Client ADO.NET, WCF & AJAX …und auf einmal sind die Daten auf dem Client…

2008 - Basta!: Massendaten auf dem Client

Embed Size (px)

Citation preview

[email protected]

Massendaten auf dem ClientADO.NET, WCF & AJAX …und auf einmal sind die Daten auf dem Client…

About me

Daniel Fisher CTO. devcoach®

Mit-Gründer und Geschäftsführer von devcoach®.

Mit-Gründer und Vorstand der just community e.V.

Leiter der .NET-Nieder-Rhein INETA User-Group.

Mitglied im Microsoft Community Leader & Insider Program.

About us

Beratung & Projektunterstützung• REST & SOA – Architektur• BPM & FDD – Prozesse• Sicherheit & Claims – Identity• DAL & ORM – Daten• RIA & AJAX – Web 2.0

Technologien• ASP.NET, WCF, WF & CardSpace – .NET

Kunden• Versicherungen, Großhandel, Software – u.A.

Microsoft

[email protected]

Agenda

• Meet Simon!

• Früher war alles besser?

• Was sich mit AJAX ändert?

Simon says…

[email protected]

Hatte ich mich schon vorgestellt? Ich bin Simon

aus dem Marketing.

Simon says…

[email protected]

Wir haben ein ernstes Problem. Unsere Kunden beschweren sich, dass

unsere Anwendung sooooo langsam ist…

Klassischer Datenzugriff

[email protected]

Klassischer Datenzugriff

• GetAll– 1 Request, 1 Response– 1 Datenzugriff

– Das kann dann auch mal etwas länger dauern…

[email protected]

Klassischer Datenzugriff #2

[email protected]

Klassischer Datenzugriff #2

• Paging– 1 initialer Request/Response– 1 Datenzugriff– Je Seitenwechsel 1 Request/Response

– ViewState• PRO: Nur wenn Datenquelle sehr sehr sehr langsam

und keine Snapshots oder Replikation möglich ist!• CON: Ping-pong on the wire

[email protected]

Zusammenfassung

• Paging hilft nicht beim ersten Request.

• Paging erhöht das transportierte Daten-Volumen.– Gefühlte Performance lässt nach …

[email protected]

Simon says…

[email protected]

Kennen Sie dieses Persil? Ach nein AJAX hieß es… Damit können wir doch bestimmt schneller und

besser und up to date …

AJAX = MEHR PERFORMANCE?

[email protected]

AJAX Datenzugriff

[email protected]

ASP.NET AJAX Light

• Das Update Panel• == Klassischer Datenzugriff

• Etwas verringertes übertragenes Daten-Volumen unter der Prämisse, das das UpdatePanel nicht die gesamte Seite einschließt!

• Keine Lösung

[email protected]

AJAX FÜR ECHTE MÄNNER (UND TAFFE FRAUEN)

Es geht auch anders…

[email protected]

AJAX Datenzugriff

• Markup und Daten werden getrennt übertragen– 1 initialer Request/Response (Markup)– Je Seitenwechsel 1 Request/Response (Daten)– Je Seitenwechsel 1 Datenzugriff

– Optimierteres Daten-Volumen– Vermehrte Datenzugriffe– Vermehrte Requests

[email protected]

Mehr Requests + Mehr Datezugriffe != Mehr Performance

AJAX Milchmädchenrechnung

[email protected]

Probleme für den Entwickler

• JavaScript ist Parallel-Know-how– Eine weitere Sprache…

• Untypisiert!

– Keine Kompilierung…– Tool-Chain erst am Anfang…– Keine Controls für Massendaten…

[email protected]

Developer Convenience

• Bewährte Konzepte anwenden um neue Aufgaben zu vereinfachen.– Technologie: ASP.NET AJAX– Aufgabe: Datenbindung

• Wir leihen uns mal ein paar Konzepte…– Technologie: ASP.NET– Aufgabe: Datenbindung

[email protected]

ASP.NET AJAX ClientSide DataBinding

[email protected]

Aber wie kann uns AJAX helfen?

[email protected]

AJAX Datenzugriff #2

[email protected]

AJAX Datenzugriff #2

• Poor mans cache:– Output Cache

• Hardware– http://www.f5.com/solutions/acceleration/web-

acceleration/

[email protected]

Introducing Marcus

[email protected]

Ich bin die Infrastruktur!Wenn du hier was willst, muss tu mit mir reden.

AJAX Datenzugriff #2

• Markup und Daten werden getrennt übertragen und Serverseitig gecached– 1 initialer Request/Response (Markup)– Je Seitenwechsel 1 Request/Response (Daten)– Je Seite eines Seitenwechsel einmalig 1 Datenzugriff

– Optimierteres Daten-Volumen– Veringerter Datenzugriff– Vermehrte Requests

[email protected]

Simon says…

[email protected]

Das sieht ja schon gut aus! Ach… hatte ich schon

gesagt, dass die Daten auch sortiert werden

müssen.

AJAX Datenzugriff #3

[email protected]

Massendaten auf dem Client mit AJAX und WCF

[email protected]

AJAX Datenzugriff #3

• Markup und Daten werden getrennt übertragen und Serverseitig gecached– 1 initialer Request/Response (Markup)– Je Seitenwechsel 1 Request/Response (Daten)– Je Seite eines Seitenwechsel einmalig 1 Datenzugriff – Je Seite eines Seitenwechsel einmalig 1 Request

– Optimierteres Daten-Volumen– Veringerter Datenzugriff– Veringerte Requests

[email protected]

Thin-Client wird Fett…

• Von nichts kommt nichts…– Das was auf dem Server „gespart“ wird muss

jemand anderes „bezahlen“:• Der Client

[email protected]

Footprints im Internet Explorer

Datensätze (n) Speicherverbrauch (MB)

0 43

10 66

100 72

500 91

1000 114

2000 162

3000 259

[email protected]

Q & A

[email protected]

daniel fisher @devcoach®.biz