2008 - Basta!: Massendaten auf dem Client
-
Upload
daniel-fisher -
Category
Software
-
view
91 -
download
1
Transcript of 2008 - Basta!: Massendaten auf dem Client
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
Simon says…
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…
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
Zusammenfassung
• Paging hilft nicht beim ersten Request.
• Paging erhöht das transportierte Daten-Volumen.– Gefühlte Performance lässt nach …
Simon says…
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
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
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…
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
AJAX Datenzugriff #2
• Poor mans cache:– Output Cache
• Hardware– http://www.f5.com/solutions/acceleration/web-
acceleration/
Introducing Marcus
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
Simon says…
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
Thin-Client wird Fett…
• Von nichts kommt nichts…– Das was auf dem Server „gespart“ wird muss
jemand anderes „bezahlen“:• Der Client
Footprints im Internet Explorer
Datensätze (n) Speicherverbrauch (MB)
0 43
10 66
100 72
500 91
1000 114
2000 162
3000 259