2008 - Basta!: Massendaten auf dem Client

Post on 13-Aug-2015

91 views 1 download

Transcript of 2008 - Basta!: Massendaten auf dem Client

Daniel.Fisher@devcoach.biz

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

daniel.fisher@devcoach.biz

Agenda

• Meet Simon!

• Früher war alles besser?

• Was sich mit AJAX ändert?

Simon says…

Daniel.Fisher@devcoach.biz

Hatte ich mich schon vorgestellt? Ich bin Simon

aus dem Marketing.

Simon says…

Daniel.Fisher@devcoach.biz

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

unsere Anwendung sooooo langsam ist…

Klassischer Datenzugriff

Daniel.Fisher@devcoach.biz

Klassischer Datenzugriff

• GetAll– 1 Request, 1 Response– 1 Datenzugriff

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

Daniel.Fisher@devcoach.biz

Klassischer Datenzugriff #2

Daniel.Fisher@devcoach.biz

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

Daniel.Fisher@devcoach.biz

Zusammenfassung

• Paging hilft nicht beim ersten Request.

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

Daniel.Fisher@devcoach.biz

Simon says…

Daniel.Fisher@devcoach.biz

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?

Daniel.Fisher@devcoach.biz

AJAX Datenzugriff

Daniel.Fisher@devcoach.biz

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

Daniel.Fisher@devcoach.biz

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

Es geht auch anders…

Daniel.Fisher@devcoach.biz

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

Daniel.Fisher@devcoach.biz

Mehr Requests + Mehr Datezugriffe != Mehr Performance

AJAX Milchmädchenrechnung

Daniel.Fisher@devcoach.biz

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…

Daniel.Fisher@devcoach.biz

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

Daniel.Fisher@devcoach.biz

ASP.NET AJAX ClientSide DataBinding

Daniel.Fisher@devcoach.biz

Aber wie kann uns AJAX helfen?

Daniel.Fisher@devcoach.biz

AJAX Datenzugriff #2

Daniel.Fisher@devcoach.biz

AJAX Datenzugriff #2

• Poor mans cache:– Output Cache

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

acceleration/

Daniel.Fisher@devcoach.biz

Introducing Marcus

Daniel.Fisher@devcoach.biz

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

Daniel.Fisher@devcoach.biz

Simon says…

Daniel.Fisher@devcoach.biz

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

gesagt, dass die Daten auch sortiert werden

müssen.

AJAX Datenzugriff #3

Daniel.Fisher@devcoach.biz

Massendaten auf dem Client mit AJAX und WCF

Daniel.Fisher@devcoach.biz

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

Daniel.Fisher@devcoach.biz

Thin-Client wird Fett…

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

jemand anderes „bezahlen“:• Der Client

Daniel.Fisher@devcoach.biz

Footprints im Internet Explorer

Datensätze (n) Speicherverbrauch (MB)

0 43

10 66

100 72

500 91

1000 114

2000 162

3000 259

Daniel.Fisher@devcoach.biz

Q & A

daniel.fisher@devcoach.biz

daniel fisher @devcoach®.biz