View
91
Download
1
Category
Preview:
Citation preview
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
• GetAll– 1 Request, 1 Response– 1 Datenzugriff
– Das kann dann auch mal etwas länger dauern…
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 …
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 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
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
• 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
Recommended