Mein Name ist Legion persistence.day Keynote Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture
Warum sind Sie hier? Persistenz ist auch nicht mehr das, was sie einmal war Mein Name ist Legion, denn ich bin viele. Lukas 8,27-30
Persistenztechnologien Früher DAO, RDO oder ADO SQL SQL Stored Procedures C/S Heute ADO.NET, O/R Mapping, SQL XML, Web Service, Linq/DLinq, WinFS SQL+, XPath, OQL, OPath, XML Schema SQL Stored Procedures, SQL CLR, SQL Service Broker, SQL Notification Services N-Tier, SOA
Persistenz? Bei Persistenz geht es um mehr als einfache Datenspeicherung: Architektur Plattformen nicht-funktionale Kriterien Datenbankproduktauswahl Plattform Infrastruktur Technologieangebot API-Auswahl Mit einem DB-API und ein bisschen SQL ist es nicht mehr getan!
Kleiner Exkurs Oder: Etwas Theorie kann doch auch nicht schaden, oder?
Architektur? ist doch einfach oder? Aber: Was ist Geschäftslogik, was Datenzugriff? Welcher Code darf wo laufen? Wie machen verfügbare Technologien Sinn im überkommenen Architekturmodell?
Architektur! Klar - aber mit neuem Modell! Präzisere Begriffe tun Not Was bedeutet Verteilte Applikation? Was ist ein Applikationsserver? Was ist Geschäftslogik? Ein detaillierteres Strukturmodell tut Not Welche Bestandteile hat ein Softwaresystem? Wie kommunizierten Softwareartefakte miteinander?
Der Host ist die Applikation Host Laufzeitumgebung für Code Prozess/EXE Host Große Vielfalt Console.EXE Word, Excel IE COM+ IIS/ASP.NET SQL Server
Ruf doch mal an
Zellen statt Schichten Softwarezelle
Verteilte Applikationen Lösungen Mitose
Technologien einordnen Host Infrastruktur Programmiermodell Kommunikationstechnologien
Back to persistence
Einordnung ADO.NET, SQL XML, O/R Mapping, Web Service, SQL Service Broker Datenbankserver ADO.NET, O/R Mapping SQL Stored Proc, Managed Code
Enter the Matrix Nicht-funktionale Anforderungen Skalierbarkeit, Performance, Programmiermodell, Plattform, Sicherheit Hosts/Datenbanksysteme Infrastruktur Tx Pooling Programmiermodell Sprache Connected/Disconnected Sync/Async Kommunikationstechnologien/APIs Relational, z.b. ADO.NET Objekt-relational, O/R Mapping Nachrichtenorientiert, z.b. SQL Service Broker RPC, z.b. Web Service nf Anforderung Host API
Was ist eigentlich
Datenbankserver Host Logik SQL Stored Proc Managed Code Stored Proc, z.b. SQL Server 2005 Infrastruktur Tx Notifications, z.b. Trigger, SQL Service Broker APIs Relational, z.b. ADO.NET XML, z.b. SQL XML RPC, z.b. Web Services, Stored Procs Nachrichten, z.b. SQL Service Broker Fragen Serverdeployment Datenbankdeployment Datenbankversionierung Programmiermodell Plattformen
O/R Mapping Kommunikationstechnologie/API Verbirgt relationales Datenmodell vor objektorientiertem Code Verspricht Codereduktion und einfacheres Programmiermodell Einsatz Client: Frontend, Application Server Server: Managed Code Stored Proc Fragen Eingriff in Vererbungshierarchie/Changetracking Ort/Art des Mappings Mapping von Vererbungshierarchien Mapping von Relationen Programmiermodell Abfragesprache Lazy Loading vs Bulk Loading Verteilte Lösungen Stored Procs
SQL XML Kommunikationstechnologie/API SQL Server seit Version 2000 Lässt relationale Daten wie XML-Dokumente aussehen XML Schema oder ad hoc Mapping Abfrage mit SQL oder XPath Shreddern von XML-Daten in relationale Strukturen Einsatz Client: Frontend, Application Server
Language Integrated Queries Kommunikationstechnologie/API Linq Embedded SQL in C# 3.0/VB9 SQL-Abfragen auf beliebigen Objektmodellen Extensible Lambda Functions Extension Methods Basis für string[] 3rd Party O/R names Mapper = {"Peter", "Paul", "Maria"}; DLinq O/R Mapping IEnumerable<string> Technologie von Microsoft query = Basiert auf Linq from n in names Lesen/Schreiben where n.length == 5 z.z. nur SQL Server orderby n select n.toupper(); foreach(string name in query) Console.WriteLine(name);
WinFS Host /API (Dateisystem) Motivation Schnellere, reichhaltigere, einfachere Suche Metadaten aus Blobs herausziehen Neue, eigene Datenprimitive Community of schemas Cross-App data sharing unterstützen Leistungsfähiger Datenspeicher integriert ins OS WinFS = NTFS + SQL Server z.b. Tx im Dateisystem, Abfragesprache (OPath), feingranulare Sicherheit, flexibler Beziehungsaufbau, Sync zwischen WinFS & custom Apps Making sense of WinFS Wird RDBMS nicht verdrängen Wird O/R Mapping nicht ersetzen Killer App: Arbeitet mit Verbindungen zwischen Daten unterschiedlichster Applikationen
Zusammenfassung Persistenz ist keine einfache Sache (mehr) Planung tut Not Architektur Nur mit einem geeigneten Modell lassen sich alle Optionen angemessen einordnen Datenmodellierung Relationales Datenmodell Objektorientiertes Datenmodell Öffnungsgrad der DB» Tabellen vs. Stored Procs/Views Zugriffsstrategie Sicherheit Steile Lernkurve Viele Host-Optionen Viele API-Optionen Nutzen Sie den persistence.day zur Evaluation von Optionen!
Ralf Westphal Ralf Westphal (www.ralfw.de) hat sich auf die Vermittlung von Microsoft Softwaretechnologie Know-How spezialisiert Als freier Autor schreibt er seit 1997 technische Artikel und Bücher für diverse Zeitschriften (z.b. dotnetpro, OBJEKTspektrum, ix) und Verlage Von 1998 bis 2001 war er Chefredakteur des deutschen VB-Magazins BasicPro Als Sprecher tritt er auf Entwicklerkonferenzen im In- und Ausland auf (z.b. DevDays, OOP, Technical Summit, JAO, BASTA!, SD West) Als Berater leitet er Softwareteams in kleinen und größeren Unternehmen bei Entwurf und Entwicklung von Software an (z.b. T-Systems, RWE) Als Trainer unterrichtet er Entwickler in unterschiedlicher, aber immer sehr individueller Form (z.b. Developer LAN Party) Als Content Manager und Chefredakteur konzipiert und koordiniert er sowohl Events wie Publikationen (z.b..net Tag auf der OOP, Enterprise Programming Sonderheft des Software & Support Verlags) Als Autor, Regisseur und Kameramann produziert er Videoserien für die Softwareentwicklergemeinde (z.b..net TV, dotnetpro.tv) Inhaltliche Arbeitsschwerpunkte Softwarearchitektur für.net Framework-Lösungen Komponentenorientierte Softwareentwicklung Domänenspezifische Sprachen Smart Clients/Desktop Applikationen Formaler Arbeitsschwerpunkt Entwicklung moderner, didaktisch/methodisch neuer Ansätze für die Wissensvermittlung im Bereich Softwareentwicklung (z.b. Developer LAN Party, no slides, just code Vorträge, Vortragsmoderation) Ralf ist (ralfw@ralfw.de) seit 20 Jahren selbstständig in der Softwarebranche tätig seit 1998 Microsoft Regional Director seit 2005 Microsoft MVP als Visual Developer Solution Architect Ralf ist Associate der ersten Stunde bei thinktecture (www.thinktecture.com)
Publikationen Bücher.NET kompakt, Spektrum Akademischer Verlag 2002, ISBN 3827411858 In Fachzeitschriften ADO.NET Datenbankprogrammierung, Addison-Wesley 2002, ISBN 3827319978 Jetzt lerne ich ADO.NET, Markt+Technik, 2003, ISBN 3827262291 (zusammen mit Christian Weyer) Video www.dotnettv.de tv.dotnetpro.de