Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Datasets und Objektmodelle

Ähnliche Präsentationen


Präsentation zum Thema: "Datasets und Objektmodelle"—  Präsentation transkript:

1 Datasets und Objektmodelle
Wo sind sie geblieben...? No. DS3, DC4, NA11

2 Zur Person Dipl. Inf. Marcel Gnoth, MCSD NTeam GmbH, Berlin
Code und Powerpoint auf der Webseite NTeam GmbH, Berlin IT – Infrastruktur, BI, Entwicklung Senior Consultant, Trainer, Programmierer Autor dotnet magazin und dotnetpro VB6, COM, Datenbanken Verteilte Informationssysteme Und Net 

3 Agenda Teil 1 Teil 2 Einordnen der Datasets
Einige praktische Betrachtungen

4 Das Dataset sucht seinen Platz
Teil 1 Das Dataset sucht seinen Platz

5 Physische Architekturen
Tier -> Schicht die gute alte Zeit ... Client / Server 3 – Tier und jetzt noch der Webserver Zugriff auf externe Systeme

6 Semantisch Architekturen
Fat Clients Aufteilung in Dienste vertikaler Zugriff -> Layer Aufteilung in Komponenten, Kapselung von Funktionalität Aufteilung: GUI Objekte (Business Logic) Datenbank

7 Die Geschäfts Logik Objektmodell Dann kam MTS / COM+ Eigenschaften
Methoden Dann kam MTS / COM+ statuslose Objekte keine Eigenschaften, nur Methoden

8 Was ist schlecht an Status...
... in der Mittelschicht ?? wenn viele Clients Bindung von Ressourcen auf dem Server zwischen den Methodenaufrufen  Threads Speicher Serverfarmen werden schwierig, Server muß Status des Client wieder finden

9 Vier Layer / drei Tier Trennung von Bearbeitung und Darstellung
UserAgent in eigene Dll Objekte haben Status Komponenten: .Net EnterpriseServices oder Webservices möglichst kein Status, schlecht für Skalierbarkeit Tiers können auf dem selben Computer laufen

10 Modell / View / Controller
altes Design Pattern Daten mit denen etwas gemacht wird passiv, überwiegend Eigenschaften Verschiedene Ansichten auf Daten (View) Winword (Normal, Seite, Gliederung) Powerpoint Controller tut etwas mit den Daten überwiegend Methoden kein Status

11 Realisierung des MVC-Pattern

12 Warum Controller aufgeteilt
UserAgent besorgt Daten für Client, hat technischen Status Geschäftslogik Verarbeitet Daten und liefert Ergebnisse Kommunikation mit Drittsystemen Transaktionslogik Pooling von Ressourcen für viele Clients

13 Datenaustausch Anwender möchte Daten sehen (oben)
Die Daten sind in der DB gespeichert (unten) Verarbeitung in der Mitte wie wandern die Daten?? zwischen Prozessen zwischen Computern zwischen verschiedenen Systemen Schnelligkeit Interoperabilität ......

14 Datenaustausch Kopie der Daten schicken (serialisieren)
Menge von Objekten als Byte – Strom (Byte – Array) Transport über das Netz möglich Objektreferenzen prozeß- und computerübergreifend DCOM, CORBA, Remoting Achtung: jeder Zugriff ist teuer bei Methodenaufrufen müssen Parameter serialisiert werden (in, ref, out)

15 Datentransport früher
ADODB Recordset (serialisierbar) war nur flache Ergebnismenge Objekte (serialisierbare), Interface implementieren! Baum möglich eigene Formate definieren Objekte Status in XML umwandeln und auf der Empfängerseite zurückwandeln Daten beim Methodenaufruf übergeben

16 Die Datasets kommen mehrere Ergebnismengen
Relationen zwischen Tabellen (Kunde->Bestellung->Detail) können um eigene Elemente erweitert werden, erben sind das direkte Ergebnis der DB – Abfrage direktes Binden an GUI

17 Datasets Können Änderungen cachen
Änderungen können direkt in DB geschrieben werden Auf Konflikte prüfen DataAdapter, bei mehr als einer Tabelle aufwendig Änderungen können rückgängig gemacht werden

18 Typisierte Datasets Erweiterung der Klasse Dataset
für jede enthaltene Tabelle werden individuelle DataTable – Objekte und DataRow – Objekte generiert Compiler kann Typsicherheit prüfen werden generiert Typsicherheit wird nicht erzwungen unübersichtlich

19 In Memory Database Filter mit Where Klausel Sortieren
Erzeugen eigener Views über mehrere Datatables

20 Warum noch Objektmodelle???
Aufbau der OOModelle aus Datareader, aus Dataset Overhead der Objektinstaziierung spielt keine Rolle Programmcode lesbarer und wartbarer Der GUI – und der Server Programmierer werden es Ihnen danken Aber mehr Aufwand bei Pflege des OO – Modells Aufwand und Nutzen sollten sich die Wage halten 

21 Recordsets und Datasets
Nachteile kein echtes „semantisches“ Objektmodel nicht typisiert keine Methoden Vorteile Einfach zu erzeugen Änderungen in DB schreiben Können mit DBNull umgehen + / - keine Abstraktion, direkte Daten

22 Erfahrungen mit dem Dataset
Mehrere Tabellen sind gut Aber oft speichern und möglichst Tabellenweise Eltern / Kind Änderungen sind komplizierter zu speichern (Insert / Delete) „dumme“ DataAdapter Nutzerführung Nach Laden aus DB DS um eigene Spalten und Tabellen ergänzen

23 Ein paar Ideen aus der Praxis
Teil 2 Ein paar Ideen aus der Praxis

24 Beispielprojekt Spieldatenbank
Drei Klassen und drei Collection – Klassen (Hashtable) Gefüllt über einen Datareader Ein Paket hat Paketschritte und Speicherungen als Eigenschaften Ein Dataset mit drei Datatables Gefüllt über drei Dataadapter Relationen und PK – Contraints Na? Wer ist schneller ???

25 DEMO

26 Serialisieren Für Übertragung der Daten wichtig 320.000 Zeilen
Wie groß ist ein serialisiertes Dataset 52MB Objektmodell 29 MB Beim Serialisieren hätten sie das XML optimieren können Dim ms As IO.MemoryStream = New IO.MemoryStream Dim bf As BinaryFormatter = New BinaryFormatter bf.Serialize(ms, m_DS) lblDSSize.Text = ms.Length.ToString("#,#")

27 Das Dataset als Collection
Erben von oder aggregieren eines Datasets Implementieren von Add, Remove Item Item instanziiert Objekte und gibt Referenzen heraus IEnumarable und IEnumerator evtl. IList ergänzen um Methoden Alles was das Herz begehrt 

28 Achtung Objektreferenzen
Intern werden die Daten in DataRows gehalten Item gibt Objekte heraus Kopien ? Immer die gleiche Referenz ? Zugriff auf einzelne Elemente Verwaltung der „Herausgegebenen Elemente“ da bei Value „On Demand“ werden Objekte generiert

29 Beispiel

30 Daten in DataRow halten
Normale Collection – Klasse Beim Füllen werden den Objekten ihre DataRows übergeben Intern wird der Objektzustand in einer DataRow gespeichert Über Property – Prozeduren wird auf die Eigenschaften zugegriffen Datarows sind mit DataTable verbunden Updates zur DB 

31 Beispiel

32 Schlussfolgerung Datasets sind eine In-Memory Datenbank, die MS uns mit COM+ versprochen hat Nicht mehr... ...und nicht weniger! Umfangreiche Möglichkeiten Filterung, Sortierung, Views Intressante Variante eines DataObjects!

33 Wann Updaten?? MS gibt uns eine InMemory DB
komplexe Operationen können lokal ausgeführt werden Änderungen werden in einem „Rutsch“ gespeichert schont den Server (bei sehr vielen Anwendern)

34 Probleme mit der Nebenläufigkeit
was wenn: viele Anwender gleichzeitig arbeiten komplexe Operationen auf Konsistenz zum DB Modell geprüft werden müssen Primärschlüssel benötigt werden Das Leben wird plötzlich sehr kompliziert... Fummlig 

35 Wann DS einsetzen wenn man wirklich den DB-Server entlasten muß (disconnected Ansatz) Außendienstmitarbeiter ?? interessante Datenstruktur für lokale Auswertungen kann sortieren, filtern,....

36 Klassisch OOModell komplexe Client Logik Eigene Objektmodelle
komplexe Objekte, bei denen Sie eine Menge Methoden implementieren „wollen“ sehr effizient so oft speichern wie möglich erhöht die Konsistenz verringert die Entwicklerprobleme 

37 Fragen? Uff... Alles wird gut 


Herunterladen ppt "Datasets und Objektmodelle"

Ähnliche Präsentationen


Google-Anzeigen