Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Anshelm Neisler Geändert vor über 10 Jahren
1
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 1 Copyright by XML-Serialisierung zur Persistierung von Objekten Thomas Schissler TSchissler@artiso.com
2
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 2 Copyright by Agenda Technologische Grundlagen Wie funktioniert Serialisierung Limitierungen überwinden Anwendungsgebiete Datenobjekte persistieren Eigene Konfigurationsdateien Praxiserfahrungen
3
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 3 Copyright by Vorstellung Thomas Schissler Software-Architekt und Projektleiter artiso AG Schwerpunkte sind Team Foundation Server Entwicklungsprozesse Software-Architektur und Software Design Leiter der.net Developergroup Ulm (www.dotnet-ulm.de)www.dotnet-ulm.de Blog : http://www.artiso.com/probloghttp://www.artiso.com/problog
4
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 4 Copyright by Technologische Grundlagen Was ist Serialisierung???
5
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 5 Copyright by Technologische Grundlagen Was ist Serialisierung???
6
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 6 Copyright by Technologische Grundlagen Was ist Serialisierung???
7
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 7 Copyright by Technologische Grundlagen Demo Ein erstes Beispiel
8
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 8 Copyright by Technologische Grundlagen Was ist bei der XML-Serialisierung zu beachten? Es werden nur public-Properties serialisiert Die zu serialisierende Klasse braucht einen parameterlosen Konstruktur Der kann aber auch private sein Steuerung der Serialisierung erfolgt über Attribute
9
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 9 Copyright by Technologische Grundlagen Die wichtigsten Attribute [XmlAttribute(Name, DataType=Type)] Das Property wird als XML-Attribut statt als XML- Element serialisiert [XmlElement (Name)] Steuert den Name des XML-Elements [XmlIgnore] Ignoriert das Property beim serialisieren [XmlInclude(typeof(class a))] Bindet abstrakte Klassen mit ein
10
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 10 Copyright by Limitierungen und Lösungen Problem: Nicht alle Datentypen lassen sich serialisieren Lösung: Einen eigenen Serialisierer schreiben Demo Dictionaries serialisieren
11
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 11 Copyright by Limitierungen und Lösungen Problem: Zyklische Referenzen lassen sich nicht serialisieren Lösung: Rück-Referenzen nicht mitserialisieren Demo Zyklische Referenzen
12
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 12 Copyright by Datenobjekte persistieren XML-Serialisierung kann zum Persistieren von Datenobjekten verwendet werden Vorteile: Kein O/R-Mapping erforderlich. Persistierung funktioniert wie man sich das wünscht Keine Systemvoraussetzungen wie Datenbankserver etc. Hohe Performance Offener Datenstandard
13
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 13 Copyright by Datenobjekte persistieren XML-Serialisierung kann zum Persistieren von Datenobjekten verwendet werden Nachteile: Suche nicht einfach realisierbar Mechanismen wie Locking, Transaktionen, etc. müssen selbst nachgebaut werden Änderungen am Datenmodell ist bei umfangreichen Daten problematisch
14
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 14 Copyright by Datenobjekte persistieren Mögliches Szenario: Index-Datei erstellen Kann zur Datensatzauswahl verwendet werden, z.B. Tree, Liste etc. Referenz zur Detail-Datei Detail-Dateien bei Bedarf laden Demo Datenpersistierung
15
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 15 Copyright by Eigene Konfigurationsdateien Szenario Konfiguration der Anwendung soll über Property-Grid bearbeitbar sein Problem Attribute für Property-Grid können nicht auf Standard-Konfiguration angewendet werden Lösung Eigene Konfigurationsklasse die einfach in eine XML-Datei serialisiert wird
16
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 16 Copyright by Eigene Konfigurationsdateien Mögliches Szenario: Config-Klasse erstellen und mit Attributen versehen Config-Klasse per XML-Serialisierung speichern und wieder laden Config kann auch in der XML-Datei geändert werden. Demo Konfigurationsdatei
17
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 17 Copyright by Praxiserfahrung XML-Serialisierung eignet sich in bestimmten Fällen sehr gut zur Daten- Persistierung Persistierung in XML-Dateien funktioniert gut und performant, wenn die Struktur passt Als Speicher kann auch eine SQL-Datenbank genutzt werden Verwendung des XML-Datentyps Erlaubt Abfragen auf Elemente und Attribute Bietet O/R-Mapping Funktionalitäten
18
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 18 Copyright by Praxiserfahrung XML-Serialisierung kann zur effizienten Speicherung von Listen etc. in der Datenbank genutzt werden Statt einer referenzierten Tabelle kann die Liste in einem XML-Feld abgelegt werden, wenn danach nicht selektiert werden soll Demo Listen mit LINQ speichern
19
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 19 Copyright by Praxiserfahrung Mit Hilfe der XML-Serialisierung kann ein Deep-Clone eines Objektbaums erstellt werden. Weitverzweigte Objekte komplett mit allen Unterstrukturen zu clonen ist nicht trivial Optional kann ein BinarySerializer genutzt werden. Demo Deep-Clone von Objekten
20
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 20 Copyright by Praxiserfahrung Fazit Vor allem für Konfigurationsdateien ist die XML-Serialisierung eine tolle Sache In bestimmten Fällen kann die Persistierung mit Hilfe der XML-Serialisierung sehr elegant sein Auch sonst lassen sich mit der XML- Serialisierung verschiedene Probleme lösen
21
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 21 Copyright by Noch Fragen? ? Jetzt ist die Zeit dafür! …oder Frage per E-Mail an TSchissler@artiso.comTSchissler@artiso.com
22
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 22 Copyright by Sessionvoting Ich freue mich auf Ihr Feedback DANKE!
23
VS one Veranstalter: VSone 13.-14. Feb. 08 Folie 23 Copyright by Wir sehen uns wieder: 18.-19. Juni 2008 Burghausen www.ASP-konferenz.de 13.-14. Oktober 2008 www.ADC08.de
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.