Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "No. DS3, DC4, NA11 Datasets und Objektmodelle Wo sind sie geblieben...?"—  Präsentation transkript:

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

2 Marcel Gnoth, Zur Person Dipl. Inf. Marcel Gnoth, MCSD 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 Marcel Gnoth, Agenda Teil 1 Einordnen der Datasets Teil 2 Einige praktische Betrachtungen

4 Teil 1 Das Dataset sucht seinen Platz

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

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

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

8 Marcel Gnoth, 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 Marcel Gnoth, 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 Marcel Gnoth, 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 Marcel Gnoth, Realisierung des MVC-Pattern

12 Marcel Gnoth, 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 Marcel Gnoth, 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 Marcel Gnoth, 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 Marcel Gnoth, 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 Marcel Gnoth, 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 Marcel Gnoth, 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 Marcel Gnoth, 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 Marcel Gnoth, In Memory Database Filter mit Where Klausel Sortieren Erzeugen eigener Views über mehrere Datatables

20 Marcel Gnoth, 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 Marcel Gnoth, 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 Marcel Gnoth, 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 Teil 2 Ein paar Ideen aus der Praxis

24 Marcel Gnoth, 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 Marcel Gnoth, DEMO

26 Marcel Gnoth, Serialisieren Für Übertragung der Daten wichtig 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 Marcel Gnoth, 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 Marcel Gnoth, 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 Marcel Gnoth, Beispiel

30 Marcel Gnoth, 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 Marcel Gnoth, Beispiel

32 Marcel Gnoth, 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 Marcel Gnoth, 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 Marcel Gnoth, 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 Marcel Gnoth, 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 Marcel Gnoth, 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 Marcel Gnoth, Fragen? Uff... Alles wird gut


Herunterladen ppt "No. DS3, DC4, NA11 Datasets und Objektmodelle Wo sind sie geblieben...?"

Ähnliche Präsentationen


Google-Anzeigen