Historisch gesehen waren Datenbanken

Größe: px
Ab Seite anzeigen:

Download "Historisch gesehen waren Datenbanken"

Transkript

1 Das Domain Model Pattern mit dem Entity Framework 2.0 umsetzen Reine Modellierung Komplexe Applikationen erfordern eine klare Trennung der Schichten Datenzugriff, Geschäftslogik und Benutzer - schnittstelle. Eine besondere Herausforderung ist die Trennung der Geschäftsobjekte von der Persistenz schicht. Das Entity Framework 2.0 ermöglicht es, das Domain Model Pattern in seiner reinen Form umzusetzen. Auf einen Blick Dino Esposito ist Architekt bei IDesign und Autor zahlreicher Programmierbücher, darunter etwa kürzlich Microsoft.NET: Architecting Applications for the Enterprise und Programming ASP.NET 3.5 Core Reference, beide bei Microsoft Press erschienen. Dino ist auch häufig Sprecher auf Entwicklerevents wie etwa DevConnections, Basta, DevWeek oder Microsoft TechEd und international anerkannter Trainer und Consultant. Manchmal bloggt er unter weblogs.asp.net/despos. Inhalt Das Domain Model Pattern mit dem Entity Framework 2.0 umsetzen. Das Domänenmodell aus POCO-Klassen aufbauen (Plain Old CLR Object). Mit dem Entity Framework 2.0 vom Domänenmodell das benötigte Datenbankschema generieren lassen. Grundlagen Das ADO.NET Entity Framework, QdnpCodeA0705EntityFramework Architekturmuster für die Problemdomäne, QdnpCodeA0812DDD dnpcode A0910EF20 Historisch gesehen waren Datenbanken für die Entwicklung von Applikationen von erheblich größerer Bedeutung als Klassen. Viele Jahre lautete die vorherrschende Strategie: Erst das Design der Datenbank er - stellen, dann eine Bibliothek von Klassen drum herum entwickeln. Dieser datenbankzentrierte Zugang hatte seinen Grund in der leichten Verfügbarkeit von relationalen Datenbanken, aber auch darin, dass die Komplexität der Software kompatibel war zur Ausdrucksstärke des relationalen Datenmodells. Diese datenzentrierte Herangehensweise an die Entwicklung von Unternehmenssoftware war in den vergangenen zehn Jahren der übliche Weg, Mehrschichtanwendungen zu erstellen. Aber vor zehn Jahren war das Szenario im Vergleich zu heute völlig anders. Komplexere Applikationen erfordern es, das relationale Modell einer Überprüfung zu unterziehen, wenn nicht für die Speicherung, so doch zumindest für die Datenmodellierung. Vor zehn Jahren waren die besten und schnellsten Computer in einem Unternehmen gewöhnlich diejenigen, auf denen ein Datenbankmanagementsystem lief wie etwa SQL Server, DB2 oder Oracle. Objektorientierung steckte noch in den Kinderschuhen, zumindest was die Microsoft- Plattform betraf. (C# war die erste, einfach zu benutzende objektorientierte Sprache von Microsoft, und sie erschien im Jahr 2002.) Sich ein System vorzustellen als eine Datenbank mit etwas Geschäftscode drum herum war eine ausgezeichnete Denkweise. Und viele Entwickler haben eine Menge Systeme auf diese Weise erstellt. Stored Procedures waren das beste Werkzeug, und Logik in Stored Procedures zu speichern erschien als gut und vernünftig. Aspekte wie etwa Sicherheit in die Geschäftslogik aufsteigen zu lassen, wirkte deplatziert und ging mit einem deutlichen Verlust von Performance einher. Da alles in die Datenbank gepackt wurde, erschien die Modellierung realer Daten als zweitrangige Aufgabe. Das einzige Datenmodell, das zählte, war das Tabellenmodell der Datenbank; Applikationen mussten damit zurechtkommen. Dementsprechend konnten diejenigen Datentypen, die auf Applikationsebene Daten speichern und durch die Schichten durchreichen, nur datenbankähnliche Container sein, also Recordsetähnliche Datenstrukturen. Im.NET Framework bedeutete das, die Typen DataSet und DataTable zu nutzen, um Domänendaten zu modellieren, die in einer relationalen Datenbank gespeichert werden sollten. Heute leben wir in einer gänzlich anderen IT- Welt; die Komplexität von Unternehmensapplikationen erfordert eine andere Herangehens weise an die Datenmodellierung. Während für die Speicherung der Daten nach wie vor überwiegend relationale Datenbanken zum Einsatz kommen und objektorientierte DBMS (ODBMS) eine ferne Vision bleiben, stellt sich die objektorientierte Repräsentation der Domänendaten mehr und mehr als die effektivere Form heraus. Eine konzeptionelle Beschreibung der Entitäten und ihrer Beziehungen in einer vorgegebenen Problemdomäne ermöglicht Ihnen als Architekt, die komplizierten Vorgänge der echten Welt zuverlässiger und leichter abzubilden. Das konzeptionelle Modell der Domäne, das nicht unmittelbar an ein physisches Speicherschema geknüpft ist, führt Sie gleichzeitig direkt zu einem neuen Muster für den Entwurf und die Entwicklung von Anwendungen und bringt die Notwendigkeit neuer Werkzeuge mit sich. Ein wichtiges Werkzeug in der.net-welt ist in dieser Hinsicht das Entity Framework (EF) 2.0. Ein Modell der fachlichen Domäne In einer konzeptionellen Beschreibung eines Systems konzentrieren Sie sich auf die Entitäten mit all ihren Beziehungen, Daten und ihrem Verhalten. Ihnen als Architekt helfen in der Regel die Domänenexperten meistens des Kunden in Ihren Bemühungen, ein Modell für das reale System zu entwerfen. Das Domänenmodell-(DM)- Pattern bietet Orientierung darin, wie sich die Komplexität einer Problemdomäne über einen Graph aufeinander bezogener Klassen aus - drücken lässt. Sie erarbeiten eine Repräsentation des Systems in Form von Software-Entitäten, und dabei stützen Sie sich auf das Verhalten und auf die Daten realer Entitäten. Wenn Sie die Geschäftslogik nach dem Domain- Model-Pattern organisieren, dann zielt diese Art des Softwaredesigns darauf, mit Komplexität auf

2 [Abb. 1] Je komplexer die Domäne, desto eher rentiert sich das Domain-Model-Pattern. überschaubare und komfortable Art und Weise umzugehen. Ein Domain-Model-Pattern zu implementieren bedeutet in erster Linie, ein Objektmodell zu erstellen, das ein konzeptionelles Modell des Systems repräsentiert. Dieses Objektmodell wird als Domänenmodell bezeichnet. Das Domänenmodell beschreibt die Entitäten, die an dem System teilnehmen, und bildet zugleich alle Beziehungen und Datenflüsse zwischen ihnen ab. Das Domänenmodell ist ein spezieller Typ von Objektmodell, bei dem Klassen spezifische Anforderungen erfüllen: Es sind einfache.net-objekte, es gibt keine Abhängigkeiten zu externen Klassen und Interfaces, und sie kümmern sich nicht um Persistenz. Das Domänenmodell ist ein Schlüsselbestandteil innerhalb des Projekts, bei dem Sie in der Regel in zwei Schritten vorgehen. Zunächst ist das Domänenmodell ein formales Modell, das Teams aus Technikern und Domänenexperten zusammen erarbeiten. Wenn es ihnen gelungen ist, dieses Modell gemeinsam zu erstellen, dann heißt das, dass sich die Leute von der Technik und die Leute von der Geschäftsdomäne auf ein gemeinsames Verständnis des Problems geeinigt haben. Zu diesem Zeitpunkt ist das Domänenmodell noch kein Stück Software, und es enthält kein Konzept oder Prinzip, das in irgendeiner Weise spezifisch für Software oder eine bestimmte Implementierung ist. Von diesem abstrakten Domänenmodell ausgehend bewegen Sie sich auf etwas zu, was Martin Fowler ein Netz miteinander verbundener Objekte nennt so nach - zulesen in seiner formalen Definition des Domain-Model-Patterns in seinem Buch Patterns of Enterprise Application Architecture (Addison-Wesley). Zu diesem Zeitpunkt entstehen aus den Entitäten des Domänenmodells Klassen mit einem passenden Satz von Methoden und Eigenschaften. Alle Bestandteile des Domänenmodells werden in Klassen mit eigenem Verhalten abgebildet, einschließlich solcher Entitäten wie Kunden, Rechnungsposten, Adressen, Kontaktinformationen und so weiter. Ein Domänenmodell ist vollkommen unabhängig von der Datenbank. Um das Domain-Model-Pattern erfolgreich anzuwenden, ist die enge Zusammenarbeit zwischen Softwarearchitekten und Domänenexperten von zentraler Wichtigkeit. Es muss sichergestellt sein, dass die Geschäftsprozesse in allen Aspekten verstanden und die Anforderungen an die Software korrekt und vollständig beschrieben sind. Da Systeme letzten Endes aber auf Software und Datenbanken basieren, muss sich zu einem bestimmten Zeitpunkt jemand darum kümmern, das abstrakte Modell auf ein ausführbares Objektmodell abzubilden und es in einer (relationalen) Datenbank zu speichern. Genau das macht die Umsetzung des DM-Patterns so aufwendig, aber zugleich ist es der Grund dafür, warum diese Herangehensweise erheblich mächtiger ist als andere Methoden, die Geschäftsschicht zu organisieren. Abbildung 1 ist aus einer analogen Dar - stellung in dem bereits erwähnten Buch von Martin Fowler hervorgegangen. Sie zeigt den Entwicklungsaufwand, der bei Verwendung unterschiedlicher Muster für die Entwicklung der Geschäftslogik entsteht, im Vergleich. Wie Sie sehen, ist der grundlegende Aufwand für das DM-Pattern erheblich höher als für ein tabellenbasiertes Pattern wie etwa Table Module. Wenn die Komplexität der Domänenlogik steigt, steigt der Aufwand beim DM-Pattern linear an, wohingegen sich die Kurve des Table- Module-Patterns an irgendeinem (relativ frühen) Punkt einer vertikalen Asymptote annähert. Das Table-Module-Pattern basiert auf der Idee, die Tabellen eines realen Speicherschemas in Objekten zu repräsentieren. Sie erstellen für jede Tabelle der Datenbank ein Objekt und rufen Methoden auf diesen Objekten auf, um Queries und Updates auf dem Datenspeicher auszuführen. Auf diese Weise implementieren Sie die erforderliche Geschäftslogik. Das Table-Module-Pattern ist in Visual Studio 2005 und Visual Studio 2008 in den Assistenten implementiert, die typisierte Data- Sets und TableAdapter erzeugen. In Visual Studio 2008 SP1 und noch besser in Visual Studio 2010 finden Sie weitere Designtools vor, die Sie zum Domain- Model-Pattern hinführen. Diese Designtools gehören zum Entity Framework. Das Entity Framework 2.0 Um das Domain-Model-Pattern zu implementieren, sind zwei Schritte notwendig: Sie müssen das Objektmodell erstellen und die dabei entstehenden Klassen auf Datenbanktabellen und -spalten abbilden. Im Entity Framework finden Sie einen De - signer, um das Netz der miteinander verbundenen Objekte zu erzeugen, und einen weiteren Designer, mit dem Sie Objekte auf Datenbanktabellen abbilden können. Zusätzlich bietet das Framework eine Schicht mit einem O/R-Mapper, der das resultierende Modell in den ausgewählten physischen Tabellen speichert. Als Technologie ist das Entity Framework ein O/R-Mapper mit einigen Erweiterungen. Ein O/R-Mapper ist letztlich nur eine Software, die von einem Graph reiner.net- Objekte ausgeht, eine Mapping-Datei verwendet und ein API anbietet, mit dem sich Klasseninstanzen in Datenbanktabellen speichern lassen. Das Entity Framework ist aber noch etwas ehrgeiziger. Die Integration in Visual Studio ermöglicht es, das Domänenmodell und die entsprechenden Datenbank-Mappings in der vertrauten Umgebung mit mächtigen visuellen Designern zu erzeugen. Das dar - aus resultierende Domänenmodell (als Entity Data Model bezeichnet) ist als Klassen bibliothek auch für viele andere Microsoft-Produkte verfügbar, einschließlich ADO.NET-Data-Services und Reporting- Werkzeugen. Abbildung 2 zeigt eine Übersicht über das Entity Framework

3 _Das Domain Model Pattern mit dem Entity Framework 2.0 umsetzen [Abb. 2] Das Entity Framework in der Übersicht. Sie teilen dem Assistenten mit, dass er ein brandneues Domänenmodell erzeugen soll, das später auf eine neue Datenbank abgebildet werden soll. In einer domänenorientierten Welt ist die Schicht mit der Geschäftslogik klar getrennt von der Datenzugriffsschicht. Die Daten und das Verhalten von Objekten sind in der einen Assembly enthalten. Der Code für die Persistenz ist einer anderen Assembly zugeordnet. In einer domänenorientierten Welt hat die Datenzugriffsschicht ihre eigenen wohl definierten Verantwortlichkeiten. Wer erstellt die Datenzugriffsschicht? Die Datenzugriffsschicht kann natürlich vom gleichen Entwicklungsteam erstellt werden, das auch das Domänenmodell erstellt. In einer domänenorientierten Welt ist das harte Arbeit. Da hier aber in der Regel keine anwendungsspezifischen Aspekte enthalten sind, ist Raum vorhanden für Persistenzwerkzeuge wie O/R-Mapper. In einer domänenorientierten Welt ist eine gut gebaute Datenzugriffsschicht beinahe das Gleiche wie ein gut gebauter O/R-Mapper. Aber es ist kaum sinnvoll, für jede Applikation einen eigenen O/R-Mapper zu schreiben. Um mit dem Domain-Model-Pattern zu arbeiten, benötigen Sie letztlich ein objektbasiertes Datenmodell und einen O/R- Mapper. Entsprechende Designer sind das Tüpfelchen auf dem i. Und all das bietet das Entity Framework. Das Entity Framework bei der Arbeit Das Entity Framework verwenden Sie, wenn Sie das Modell für domänenspezifische Daten definieren müssen. Das Modell zu definieren bedeutet letztlich, relevante Entitäten und ihre Verknüpfungen zu identifizieren. In.NET ist dieses Modell nichts weiter als eine Assembly. Typischerweise beginnen Sie, indem Sie ein Projekt mit einer Klassenbibliothek erzeugen und dann ein neues Item vom Typ ADO.NET Entity Data Model hinzufügen, siehe Abbildung 3. Die für Sie generierte EDMX-Datei repräsentiert die Beschreibung des Domänenmodells. Sie haben zwei Optionen: Sie können ein Modell entsprechend einer vorhandenen Datenbank erzeugen lassen, oder Wenn Sie von einer vorhandenen Datenbank ausgehen, geben Sie den Connection- String an und lassen den Assistenten alle Details aus der lokalen oder entfernten Datenbank beziehen. Als Ergebnis reflektiert das EDMX-Modell genau den Inhalt der Datenbanktabellen. Im Endeffekt erhalten Sie eine Entität für jede ausgewählte Tabelle oder Sicht. Diese Repräsentation können Sie natürlich weiter anpassen und jederzeit bearbeiten. Diese Vorgehensweise wird auch im Entity Framework 1.0, das in Visual Studio 2008, Service Pack 1 enthalten ist, vollständig unterstützt. Das andere Szenario mit einem leeren Datenmodell zu beginnen ist eine neue, sehr leistungsstarke Option in Visual Studio 2010, die im Folgenden untersucht werden soll. So wie es in Abbildung 4 zu sehen ist, können Sie dem Modell Entitäten und Assoziationen hinzufügen. Eine Entität ist im Wesentlichen die Beschreibung einer Klasse, und sie besteht aus einer Liste von Eigenschaften. Eine Assoziation ist eine Verbindung zwischen zwei Entitäten, die an beiden Enden unterschiedliche Wertigkeiten haben kann: eins, eins oder null, viele. Die Assoziation hat einen Namen und erzeugt in beiden Entitäten eine neue Referenz-Eigenschaft. Eine Eigenschaft kann einen Standardwert haben, natürlich einen Typ, einige [Abb. 3] Ein ADO.NET Entity Data Model hinzufügen. [Abb. 4] In einem Entity-Framework-2.0-Modell Entitäten und Assoziationen hinzufügen

4 [Abb. 5] Der Eigenschaft einer Entität einen komplexen Typ zuweisen. Attribute, die die Sichtbarkeit der Get- und Set-Methoden betreffen, und eine Schlüsselreferenz. Der Typ kann insbesondere entweder ein skalarer Typ sein wie String/Integer oder ein komplexer Typ wie etwa ein selbst definierter.net-typ. Abbildung 5 zeigt die konzeptionelle Definition des Typs Address- Info für die Eigenschaft Address des Clients. Das Datenmodell der Entitäten zu entwerfen ist nur der erste Schritt. Als Nächstes müssen Sie die Eigenschaften auf die Tabellenspalten einer konkreten Datenbank abbilden. Das Entitäten-Datenmodell wird in einer XML-Datei abgelegt, die die Conceptual Schema Definition Language (CSDL) nutzt. Der physische Datenspeicher wird modelliert und erstellt mithilfe der Storage Schema Definition Language (SSDL). Und die Definition des Mappings zwischen den beiden Schemas wird schließlich mithilfe der Mapping Specification Language (MSL) bewerkstelligt. Die Designer in Visual Studio ermöglichen es Ihnen, das konzeptionelle und das physische Modell zu entwerfen und ein Mapping durchzuführen, ohne dass Sie sich mit XML auskennen müssen, aber jetzt wissen Sie, was sich unter der Haube abspielt. Das Datenbankschema generieren Wie bereits erwähnt unterstützt das Entity Framework zwei Engineering-Modelle. Sie können ein Reverse-Engineering der Datenbank durchführen und damit das Entitätenmodell von einem vorhandenen Schema ableiten. Alternativ können Sie mit einem Forward-Engineering den Designer von Visual Studio 2010 dazu veranlassen, ausgehend von einem existierenden Entitätenmodell passende SQL-Skripte zu erzeugen, die die passenden Datenbank - tabellen erstellen. Wenn Sie von einem Entitätenmodell ausgegangen sind, dann werden Sie so wie in Abbildung 6 ein fertig ausführbares SQL- Skript erhalten. Damit ist es an Ihnen, dieses Skript in der darunterliegenden Datenbank zu laden und auszuführen. Für das leichtere Handling wird der Connection- String für die Datenbank in einer Konfigurationsdatei abgelegt. Diese können Sie in ein Zielprojekt kopieren oder mit der Konfigurationsdatei des Projekts, das das Entitätenmodell nutzt, zusammenführen. Die meisten Mappings werden automatisch ausgeführt, ohne dass Sie sich einschalten und Dinge manuell auflösen müssen. Mit den Designern des Entity Frameworks ist es nicht möglich, die Eigenschaften von Klassen auf die Spalten einer bereits existierenden Datenbanktabelle abzubilden. Sie können nur entweder von einer existierenden Datenbank ausgehen und das Modell von dort aus aufbauen oder ein Skript erzeugen lassen, das seinerseits die passende Datenbank generiert. Im Ergebnis heißt das, dass das Entity Framework eine ausgezeichnete Wahl ist, wenn Sie ein Domain-Model-Projekt von Grund auf neu aufsetzen können und wenn Sie keinen Legacy-Code und keine POCO und der generierte Code Zur ersten Version des Entity Frameworks und zu den Einschränkungen, die sie den Entity-Klassen auferlegt, wurde an anderer Stelle bereits viel gesagt. Im Entity Framework 1 müssen Entity-Klassen insbesondere von der Klasse EntityObject ableiten, die das System zur Verfügung stellt. Alternativ kann eine Entity-Klasse einen Satz von Schnittstellen implementieren, dazu gehören IEntityWithKey, IEntityWithChange- Tracker und IEntityWithRelationships. Am Rande sei erwähnt, dass diese Schnitt - stellen allgemein als IPOCO bekannt sind, wobei POCO die verbreitete Abkürzung für Plain Old CLR Object ist. Indem die Klassen des Domänenmodells von einer Systembasisklasse ableiten oder vorgegebene Interfaces implementieren müssen, sind sie aber nicht wirklich unabhängig vom Persistenzaspekt. Sie sind an ein Framework gebunden und nicht so leicht testbar, wie sie es sein sollten. In der Version des Entity Frameworks, die mit Visual Studio 2010 ausgeliefert wird, können Sie auch Ihre eigenen Klassen verwenden, um das Modell zu definieren, ohne den Designer für die Codegenerierung zu verwenden. Wenn Sie den ein- [Abb. 6] Der Assistent generiert aus dem Domänenmodell ein SQL- Skript, das die passende Datenbank erzeugt. Legacy-Daten haben und auch keine Geschäftslogik wiederverwenden müssen. Wenn Sie ein brandneues Projekt starten, ist es nur eine Detailfrage, wer die Datenbank erzeugt, und die Wahl der einen oder der anderen Methode ist eine Frage der Vorliebe und der Einstellung

5 _Das Domain Model Pattern mit dem Entity Framework 2.0 umsetzen gebauten Designer benutzen, werden Sie immer Klassen erhalten, die von EntityObject ableiten, zum Beispiel so: public class Client : EntityObject : Listing 1 POCO-Klassen selbst erstellen. hält, in der Präsentationsschicht nicht verfügbar ist. Sich selbst überwachende (Self-tracking) Objekte enthalten die Logik, die nötig ist, um die Änderungen, denen sie sich unterzogen haben, zu speichern. Das heißt, dass es kein POCO-Objekt mehr ist, insofern es jetzt von dem Code verschmutzt wird, der nötig ist, um Änderungen zu verfolgen. (Am Rande: Gerade die Notwendigkeit, den Kontext dazu zu befähigen, Änderungen zu verfolgen, war der Grund dafür, dass die erste Version des Entity Frameworks keine POCO-Objekte unterstützt hat.) Sich selbst überwachende Objekte können die Grenzen der Schichten übertreten und sich anschließend wieder mit dem originalen Datenkontext verknüpfen. Der Datenkontext wird Änderungen erkennen und das modifizierte Objekt verwenden. Eine zweite Herangehensweise an sich selbst überwachende Objekte, die die POCO-Qualität nicht verletzt, bringt es mit sich, dass der Code für die Änderungsverfolgung über einen Proxy injiziert wird. Der Proxy ist eine Klasse, die von der Entität erbt und weiteren Code hinzufügt. Vom Standpunkt des Entwicklers aus ist die Verwendung eines Proxys vollständig transparent. Bei der Verwendung von Proxys ist jedoch Vorsicht geboten, wenn es darum geht, Entitäten für andere Schichten zu serialisieren: Entweder greifen Sie explizit auf Data-Transfer-Objekte zurück (DTO) und verfolgen die Änderungen manuell über eipublic class Client public int ClientID get; set; public string CompanyName get; set; public List<Order> Orders get; set; public class Order public int OrderID get; set; public DateTime OrderDate get; set; public Client Customer get; set; public List<OrderItem> Items get; set; Listing 2 Das Gerüst einer Klasse mit einem T4-Template template ClassDiagramExample processor="classdiagramexampledirectiveprocessor" requires="filename='sample.testcd'" foreach(modeltype type in this.modelroot.types) if(type is ModelClass) public class = type.name Wenn Sie im Entitätenmodell Ihre eigenen Klassen verwenden und sie persistenz - unabhängig entwerfen möchten, müssen Sie daneben ein konzeptionelles Schema der Entitäten zur Verfügung stellen, entweder abgeleitet von einer Datenbank oder von Hand erstellt. Dafür müssen Sie jedoch in Visual Studio das Code-Generation-Flag ausschalten. Als Ergebnis werden keine Dateien vom Typ xxx.designer.cs generiert, die den Code der modellierten Entitäten und darauf bezogener komplexer Typen, sofern es welche gibt, enthalten. Damit sind Sie selbst verantwortlich dafür, Code wie etwa den in Listing 1 zu schreiben. Wenn Sie Ihre POCO-Klassen manuell erzeugen, müssen Sie auch die domänenspezifische Objekt-Kontext-Klasse erstellen eine weitere Klasse, die die voreingestellte Code-Generation-Engine normalerweise für Sie erzeugt. Als Minimum bietet diese Klasse eine Collection der Entitäten und bietet Unterstützung bei der Defini - tion von Queries und wenn es darum geht, Entitäten aus der Datenbank zu beziehen und sie zurückzuspeichern. Das manuelle Erzeugen der POCO-Klasse ist aber nicht die einzige Option. Als Alternative bietet Visual Studio 2010 die T4- Templates, wobei T4 das Kürzel ist für Text Template Transformation Toolkit [1]. Über ein T4-Template steuern Sie, welchen Code der Generator für Sie erzeugt. Damit bilden T4-Templates ein Mittelding zwischen dem Code, der als Standard generiert wird, und dem vollständig manuell geschriebenen Code. Indem Sie das Template registrieren, zwingen Sie den Designer von Visual Studio 2010 dazu, diese Vorlage für die Codeerzeugung zu verwenden. Sie registrieren ein T4-Template, indem Sie im Kontextmenü auf Add New Artifact Generation Item klicken, siehe Abbildung 7. Sie erstellen ein T4-Template mithilfe einer speziellen Syntax. Listing 2 gibt Ihnen eine Vorstellung davon, wie Sie das Gerüst einer Klasse über ein T4-Template erstellen. Dieses Template erzeugt für jede Klasse, die im Entitätenmodell definiert ist, eine leeres Klassengerüst [2]. Self-tracking Entities Ein weiteres interessantes Feature des jüngsten Entity Frameworks sind Self-tracking Entities. In der alten Version des Entity Frameworks kümmert sich die Object- Context-Klasse darum, Änderungen an den verwalteten Objekten zu verfolgen. Jedes Objekt, das in eine ObjectContext-Instanz geladen wird, wird für die gesamte Lebenszeit des Kontexts auf Änderungen hin überwacht. Am Rande sei erwähnt, dass auch LINQ-to-SQL so arbeitet. Auf der einen Seite ist das gut, weil das Verfolgen der Änderungen in einem einzelnen Objekt zentralisiert ist. Auf der anderen Seite schränkt es die Mobilität der Objekte ein. Ein Beispiel: Angenommen, Sie übertragen ein Customer-Objekt in die Präsentationsschicht. Wenn das Objekt dort verändert wird, dann gehen diese Änderungen ver - loren, weil der Kontext, der das Objekt ent

6 [Abb. 7] Ein T4-Template für die Codeerzeugung registrieren. ne DTO-Adapter-Schicht, oder Sie nutzen die Möglichkeiten des Entity Frameworks und stellen sicher, dass Sie die Entität serialisieren und nicht den Proxy. Und was ist mit LINQ-to-SQL? Die Blogger von Microsofts Data-Access- Team haben es klargemacht: Microsoft spricht sich für erhebliche Investitionen in das Entity Framework aus. Es soll die empfohlene Datenzugriffslösung sein für Szenarien, bei denen mit LINQ auf relationale Daten zugegriffen werden soll. Auf der anderen Seite ist LINQ-to-SQL eine exzellente und leichtgewichtige Datenzugriffsoption mit mächtigen Erweiterungsoptionen. Sie ist leicht zu verwenden und funktioniert gut. Bislang war nicht die Rede davon, dass LINQ-to-SQL ein Auslaufmodell sein soll. Sie sollten aber nicht erwarten, dass LINQ-to- SQL künftig noch erweitert wird. Vielleicht kommt irgendwann der Tag, an dem Microsoft LINQ-to-SQL auslaufen lässt, aber dieser Tag ist noch nicht erreicht, und bis dahin wird es vielleicht auch noch einige Jahre dauern. Sicher ist, dass LINQ-to-SQL im.net Framework 4.0 und in Visual Studio 2010 enthalten sein wird. Auf kurze Sicht scheint es immer noch sinnvoll zu sein, in LINQ-to-SQL zu investieren. Es wird ein Zeitfenster von wenigen Jahren mit einem fortgesetzten Support geben. LINQ-to-SQL und das Entity Framework sind von verschiedenen Gruppen entwickelt worden und dienen unterschiedlichen Zwecken. Es gibt zwischen ihnen einige Überschneidungen, aber auch einige entscheidende Unterschiede. Es ist verständlich, dass Microsoft darauf zielt, nur ein Daten - zugriffs-framework anzubieten, und es ist auch vernünftig, dass Microsoft große Pläne für das Entity Framework hat. Microsoft wünscht sich ein umfassendes Framework, das die Erwartungen von Enterprise-Architekten und -Entwicklern erfüllen kann und das ein seriöses Domänenmodelldesign innerhalb der.net-welt ermöglicht. Auf der anderen Seite ist LINQ-to-SQL, so wie es ist, für einen großen Teil der Microsoft-Kunden einfach perfekt, nämlich für die kleinen und mittleren Unternehmen. Außerdem wurde LINQ-to-SQL in erster Linie für Webentwickler und Web - sites entwickelt. Auch große Websites benötigen nicht immer die Abstraktion und die Mächtigkeit von vollständigen O/R- Mappern wie dem Entity Framework. Viele Webentwickler wollen einfach eine schnelle und effektive Methode haben, Daten zu modellieren und Persistenz zu realisieren, ohne zusätzlichen Aufwand treiben zu müssen. Für Einsatzzwecke dieser Art ist LINQ-to-SQL optimal geeignet. Da LINQ-to-SQL vielen.net-entwicklern gute Dienste leistet, wird Microsoft LINQ-to-SQL nicht einfach fallen lassen können, ohne einen allgemein akzeptierten Ausweg, sprich einen Migrationspfad zum Entity Framework anzubieten. LINQto-SQL zu unterstützen, aber es so wie in seiner Version 1.0 zu belassen, ist auch ein gefährlicher Weg sowohl für Microsoft als auch für seine Kunden. Ich hätte am liebsten eine leichtgewichtige Version des Entity Frameworks, die das API, das Modell und die Philosophie des Entity Frameworks nutzt, aber genau das macht und anbietet, was heute LINQ-to- SQL macht und anbietet. Der Grund für diesen Wunsch: Auf diese Weise wäre Kompatibilität gewährleistet zwischen dem Basis-API (also LINQ-to-SQL oder was auch sonst immer) und neueren, künftig ent stehenden Technologien, die Microsoft noch rund um das Entity Framework erstellen wird. Wie bei so vielen anderen Architekturentscheidungen hängt die Wahl zwischen Entity Framework und LINQ-to-SQL auch vom Bauchgefühl ab. Als Daumenregel könnte man sagen: Wenn LINQ-to-SQL heute für Sie gut arbeitet und die Applikation voraussichtlich für lange Zeit unverändert bleiben wird (länger als zwei Jahre), dann können Sie es definitiv nutzen. Aber wenn die Applikation Teil eines größeren Projekts ist, bei dem die Vorteile eines echten Domänenmodells deutlich zum Tragen kommen, dann nutzen Sie auf jeden Fall das Entity Framework, auch dann, wenn heute LINQ-to-SQL noch ausreichen würde. Zusammenfassung Die Version des Entity Frameworks, die mit dem.net Framework 4.0 und Visual Studio 2010 ausgeliefert wird, ist ein großer Schritt nach vorn. Sie unterstützt POCO- Klassen im gesamten Framework, verbessert einige Programm-Features wie etwa Lazy Loading, ordnet die Objektverfolgung neu und ergänzt ein Bündel neuer Erweiterungsoptionen (Support für Stored Procedures), die unter LINQ-to-SQL einer Art Zwillingsbruder bereits verfügbar waren und von der Entwicklergemeinde lautstark gefordert wurden. Dieser Artikel hat nur an der Oberfläche des Entity Frameworks 2.0 gekratzt. Er hat sich hauptsächlich auf POCO und den neuen Code-First-Ansatz konzentriert. Dieser erlaubt es Ihnen, erst das Modell zu entwerfen und anschließend die Klassen und die Datenbanken zu generieren. Mit dem Entity Framework 2.0 ist die domänenbasierte Entwicklung, wenn nicht sogar die domänengetriebene Entwicklung erheblich leichter möglich als mit früheren Versionen. Just do it! [ml] [1] Ulrich Gronau, T4 erledigt die Fleißarbeiten, Einführung in das Text Template Transformation Toolkit, dotnetpro 8/2009, Seite 54 ff., QdnpCodeA0908T4 [2] MSDN, Domain-Specific Language Tools, Generating Artifacts By Using Text Templates, QdnpLink SL0909EF201 [3] Dino Esposito, Modelle fürs Business, Architekturmuster für die Problemdomäne, dotnetpro 12/2008, Seite 130 ff., QdnpCodeA0812DDD [4] Holger Schwichtenberg, Auf höherer Ebene, Das ADO.NET Entity Framework, dotnetpro 5/2007, Seite 94 ff., QdnpCodeA0705EntityFramework

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken Kapitel 14 Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) 1 Wozu Objekt-relationales Mapping? - Problematik - Business-Schicht OO-Klassen Unvereinbarkeit der Paradigmen

Mehr

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle OO Programmiersprache vs relationales Model Vorgehen bisher Erstellen eines ER-Diagramms Übersetzen in das relationale Datenmodell Zugriff auf das relationale Datenmodell aus z.b. Java ER rel. Modell OO

Mehr

Eclipse und EclipseLink

Eclipse und EclipseLink Eclipse und EclipseLink Johannes Michler Johannes.Michler@promatis.de PROMATIS, Ettlingen Zugriff auf Oracle Datenbanken aus Eclipse RCP Anwendungen via EclipseLink 18.09.2009 1 Gliederung Eclipse als

Mehr

.NET Entity Framework 4

.NET Entity Framework 4 1.NET Entity Framework 4 Grundlagen und Einsatz in.net 4.0 W3L AG info@w3l.de 2010 2 Agenda Motivation OR-Mapping-Frameworks Entity Framework 4 Entwicklung Mapping & Architektur Generatorverfahren Praxisbeispiel

Mehr

Einführung: Verteilte Systeme - Remote Method Invocation -

Einführung: Verteilte Systeme - Remote Method Invocation - Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation

Mehr

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit

Mehr

Java-Objekte mit SQL verheiraten

Java-Objekte mit SQL verheiraten ITMAGAZINE Java-Objekte mit SQL verheiraten 24. November 2006 - ibatis ermöglicht die Abstraktion von SQL-Datenbanken, ohne dass man auf von Hand geschriebene SQL-Abfragen verzichten muss. Entwickelt man

Mehr

Enterprise JavaBeans Überblick

Enterprise JavaBeans Überblick Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 2. Einführung Java EE 5 Plattform 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5.

Mehr

Datenzugriffskomponente mit JPA 2.1

Datenzugriffskomponente mit JPA 2.1 Datenzugriffskomponente mit JPA 2.1 (Grundlagen der Java Persistence Architecture) Vladislav Faerman Gliederung Einführung Konfiguration Objekt-Relationales Mapping (ORM) mit JPA Das zentrale Konzept der

Mehr

Oracle SQL Developer Data Modeling

Oracle SQL Developer Data Modeling Oracle SQL Developer Data Modeling DOAG Regio Rhein-Neckar Oracle Deutschland GmbH The following is intended to outline our general product direction. It is intended for information

Mehr

DWH Automatisierung mit Data Vault 2.0

DWH Automatisierung mit Data Vault 2.0 DWH Automatisierung mit Data Vault 2.0 Andre Dörr Trevisto AG Nürnberg Schlüsselworte Architektur, DWH, Data Vault Einleitung Wenn man die Entwicklung von ETL / ELT Prozessen für eine klassische DWH Architektur

Mehr

Enterprise Application Integration Erfahrungen aus der Praxis

Enterprise Application Integration Erfahrungen aus der Praxis Enterprise Application Integration Erfahrungen aus der Praxis Teil 4: EAI und.net, EAI und J2EE Tutorial NODs 2002, Wolfgang Keller and Generali 2001, 2002, all rights reserved 1 Überblick EAI und....net

Mehr

MOC 10265A: Datenzugriffslösungen mit Microsoft Visual Studio 2010 entwickeln

MOC 10265A: Datenzugriffslösungen mit Microsoft Visual Studio 2010 entwickeln MOC 10265A: Datenzugriffslösungen mit Microsoft Visual Studio 2010 entwickeln Kompakt-Intensiv-Training Diese Schulung bereitet Sie optimal auf die MOC-Zertifzierung vor. Microsoft Visual Studio 2010 stellt

Mehr

ETL-Industrialisierung mit dem OWB Mapping Generator. Irina Gotlibovych Senior System Beraterin

ETL-Industrialisierung mit dem OWB Mapping Generator. Irina Gotlibovych Senior System Beraterin ETL-Industrialisierung mit dem OWB Mapping Generator Irina Gotlibovych Senior System Beraterin MT AG managing technology Daten und Fakten Als innovativer Beratungs- und IT-Dienstleister zählt die MT AG

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Kapitel 2 Die Definitionsphase Prof. Walter F. Tichy Wo sind wir gerade? Planung Lastenheft (funktionales Modell) Definition (Analyse) Pflichtenheft

Mehr

Realtime Daten-Rückschreibung in Tableau mit der Extensions API //

Realtime Daten-Rückschreibung in Tableau mit der Extensions API // Was wir vorhersagen, soll auch eintreffen! Realtime Daten-Rückschreibung in Tableau mit der Extensions API // Pascal Muth Zusammenfassung In diesem Whitepaper wird die Tableau Extensions API von Tableau

Mehr

Kapitel 2 - Die Definitionsphase

Kapitel 2 - Die Definitionsphase Kapitel 2 - Die Definitionsphase SWT I Sommersemester 2010 Walter F. Tichy, Andreas Höfer, Korbinian Molitorisz IPD Tichy, Fakultät für Informatik KIT die Kooperation von Forschungszentrum Karlsruhe GmbH

Mehr

Programmieren lernen in ASP.NET mit C#

Programmieren lernen in ASP.NET mit C# Programmieren lernen in ASP.NET mit C# von Patrick A. Lorenz, Christoph A. Müller 1. Auflage Hanser München 2003 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 22311 0 Zu Leseprobe schnell und

Mehr

DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3

DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3 DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3 Inhalt: Anforderungen an ein Schema Design eines Schemas Schrittweises Vorgehen Strukturierung und Design der Daten in DOORS Voraussetzung für

Mehr

<Insert Picture Here> Generierung von ADF-Applikationen aus Metadaten des Oracle Designer

<Insert Picture Here> Generierung von ADF-Applikationen aus Metadaten des Oracle Designer Generierung von ADF-Applikationen aus Metadaten des Oracle Designer Jürgen Menge Oracle Deutschland Oracle Designer - Metadaten Investment vieler Anwender liegt in den Metadaten des

Mehr

3. Stud.IP-Entwickler-Workshop 2. Juni 2006 Workshop 1a: Gib mir 5: Lohnt sich der Umstieg auf PHP5 und MySQL5? André Noack

3. Stud.IP-Entwickler-Workshop 2. Juni 2006 Workshop 1a: Gib mir 5: Lohnt sich der Umstieg auf PHP5 und MySQL5? André Noack 3. Stud.IP-Entwickler-Workshop 2. Juni 2006 Workshop 1a: Gib mir 5: Lohnt sich der Umstieg auf PHP5 und MySQL5? André Noack Gliederung (nicht mehr so) Neues in PHP 5 Neues in MySQL 4.1 / 5 Probleme mit

Mehr

Changelog objectif 7.0 Service Pack 3

Changelog objectif 7.0 Service Pack 3 Changelog objectif 7.0 Service Pack 3 Mit dem Service Pack 3 zu objectif haben wir wieder zahlreiche Neuerungen in objectif integriert und eine ganze Reihe von Fehlern behoben. Lesen Sie hier im Detail,

Mehr

Zukunft der Oracle Applikationsentwicklung: BC4J & XML

Zukunft der Oracle Applikationsentwicklung: BC4J & XML 2 Jahre Niederlassung in München Trivadis GmbH Zukunft der Oracle Applikationsentwicklung: BC4J & XML Markus Heinisch 1 Agenda Tägliches Brot BC4J DEMO Applikation BC4J XML DEMO Applikation XML Fazit 2

Mehr

Software-Engineering im Sommersemester 2014

Software-Engineering im Sommersemester 2014 Methodische Grundlagen des Software-Engineering SS 2014 Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2014 Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl

Mehr

Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen

Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen Christian Böhmer, isys Software GmbH Björn Grimm, Hochschule München 1 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen

Mehr

DWH Automation - Steigerung von Qualität, Effektivität und Transparenz in der DWH Implementierung und dem Betrieb. Referent: Raphael Henneke

DWH Automation - Steigerung von Qualität, Effektivität und Transparenz in der DWH Implementierung und dem Betrieb. Referent: Raphael Henneke DWH Automation - Steigerung von Qualität, Effektivität und Transparenz in der DWH Implementierung und dem Betrieb Referent: Raphael Henneke Agenda 10.00 10.30 Begrüßung & aktuelle Entwicklungen bei QUNIS

Mehr

Seminar Softwarearchitekturen SoSe Martin Schrage

Seminar Softwarearchitekturen SoSe Martin Schrage Seminar Softwarearchitekturen SoSe 2011 Martin Schrage Gliederung 1. Common Language Infrastructur 2. Microsoft.NET 2.1Common Language Runtime 2.2 Programmausführung 2.3 Framework Class Library 2.4 Programmiersprachen

Mehr

OR-Mapping. WS2008/2009 DBIS/Dr. Karsten Tolle

OR-Mapping. WS2008/2009 DBIS/Dr. Karsten Tolle OR-Mapping Zwei Paradigmen treffen aufeinander Gegensätze OO vs. Relational: Stichwort: O/R Impedance Mismatch Person Tabellen mit Schlüssel und Fremdschlusselbeziehungen. Abt-Nr. beschäftigt Pk-Nr Name

Mehr

Modellbasierte OberflächenentwicklungohneOberflächenundVerhaltensmodellierung

Modellbasierte OberflächenentwicklungohneOberflächenundVerhaltensmodellierung Modellbasierte OberflächenentwicklungohneOberflächenundVerhaltensmodellierung Olaf Böde FreiberuflicherIngenieur MarnerStraße 43a 22047Hamburg olaf.boede@gmx.de Abstract: Der Beitrag beschreibt einen Ansatz

Mehr

PowerDesigner Frühstück

PowerDesigner Frühstück SAP Sybase PowerDesigner Frühstück Die Veranstaltung für Daten-, Informations- und Unternehmens- Architekten SQL Projekt AG Ihr SAP Value Added Reseller lädt am 10.10.2014 um 10:00-12:00 Uhr in Dresden,

Mehr

Comparing Software Factories and Software Product Lines

Comparing Software Factories and Software Product Lines Comparing Software Factories and Software Product Lines Martin Kleine kleine.martin@gmx.de Betreuer: Andreas Wuebbeke Agenda Motivation Zentrale Konzepte Software Produktlinien Software Factories Vergleich

Mehr

O/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010

O/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 O/R Mapper O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 Agenda Object-relational impedance mismatch Mapping Session Abfragen No. 2 Object-relational impedance mismatch Object-relational

Mehr

Objektorientierte Programmierung (OOP)

Objektorientierte Programmierung (OOP) orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,

Mehr

Implementieren einer Microsoft SQL Server 2005-Datenbank M4739

Implementieren einer Microsoft SQL Server 2005-Datenbank M4739 Implementieren einer Microsoft SQL Server 2005-Datenbank M4739 Mögliche Seminarart Seminarsprache : Klassenraumtraining, WalkIn, Firmenseminar : Deutsch Einführung Dieser fünftägige, von einem Kursleiter

Mehr

Walter Doberenz, Thomas Gewinnus. Datenbankprogrammierung mit Visual Basic 2012

Walter Doberenz, Thomas Gewinnus. Datenbankprogrammierung mit Visual Basic 2012 Walter Doberenz, Thomas Gewinnus Datenbankprogrammierung mit Visual Basic 2012 16 Arbeiten mit sqlcmd... Migrieren von Access-Datenbanken... 12 Arbeiten mit dem Entity Framework... Das Grundkonzept...

Mehr

ORACLE Business Components for Java (BC4J) Marco Grawunder

ORACLE Business Components for Java (BC4J) Marco Grawunder ORACLE Business Components for Java (BC4J) Marco Grawunder Gliederung 2 Probleme von J2EE/EJB J2EE-Pattern Lösungsansatz: BC4J Architektur einer BC4J-Anwendung Komponenten Entity Objects View Objects Application

Mehr

Persistenz. Ralf Gitzel

Persistenz. Ralf Gitzel Persistenz Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Grundkonzepte Entity Beans Meine erste Entity Entity-Manager Lernziele Übungsaufgabe 3 Grundkonzepte

Mehr

Oracle JDeveloper 10 g

Oracle JDeveloper 10 g Oracle JDeveloper 10 g Modellierung Evgenia Rosa Business Unit Application Server ORACLE Deutschland GmbH Agenda Warum Modellierung? UML Modellierung Anwendungsfall (Use Case)-Modellierung Aktivitätenmodellierung

Mehr

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3 Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................

Mehr

Ein Design Tool für objektorientierte portable Programmierschnittstellen

Ein Design Tool für objektorientierte portable Programmierschnittstellen Diplomarbeit Ein Design Tool für objektorientierte portable Programmierschnittstellen Vortragender: Elias Volanakis Inhalt 1. Entwurfsmuster 2. Wrapper Facade (WF) Aufgaben & Struktur Implementierung Nutzen

Mehr

Entitätstypen, Attribute, Relationen und Entitäten

Entitätstypen, Attribute, Relationen und Entitäten Einführung Datenmodellierung Entitätstypen, Attribute, Relationen und Entitäten Wozu Datenbanken? Datenbanken dienen zur Speicherung und Verwaltung großer Datenbestände Beispiele: Adressdaten aller Kunden

Mehr

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was 1 In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was die wichtigsten Konzepte sind. Den Themenbereich XML

Mehr

T:\Dokumentationen\Asseco_BERIT\Schulung\BERIT_LIDS7_Basiskurs\Impo rt_export\beritde_lt_do_20120918_lids7.basisschulung_import_export.

T:\Dokumentationen\Asseco_BERIT\Schulung\BERIT_LIDS7_Basiskurs\Impo rt_export\beritde_lt_do_20120918_lids7.basisschulung_import_export. LIDS 7 Import/Export Mannheim, 11.02.2013 Autor: Anschrift: Version: Status: Modifiziert von: Ablage: Christine Sickenberger - Asseco BERIT GmbH Asseco BERIT GmbH Mundenheimer Straße 55 68219 Mannheim

Mehr

Datenstrukturen -- die komplexe Welt in FileMaker Feldern beschreiben

Datenstrukturen -- die komplexe Welt in FileMaker Feldern beschreiben FileMaker Konferenz2010 Datenstrukturen -- die komplexe Welt in FileMaker Feldern beschreiben Modellbildung und Datendefinition für FileMaker Entwickler. * dr.filemaker@mac.com FileMaker Konferenz2010

Mehr

Möglichkeiten der - Archivierung für Exchange Server im Vergleich

Möglichkeiten der  - Archivierung für Exchange Server im Vergleich 1 5 Möglichkeiten der E-Mail- Archivierung für Exchange Server im Vergleich Mit Microsoft Exchange Server bieten sich für Unternehmen gleich zwei mögliche Szenarien an, um eine rechtskonforme Archivierung

Mehr

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi Projektgruppe Thomas Kühne Komponentenbasiertes Software Engineering mit OSGi Anforderungen der PG IDSE an ein Komponenten- Client Nativer Client Web Client Alternativen IDSE Nutzer Szenario Pipe IDSE

Mehr

Arbeitsblätter zu Teil I des Praktikums

Arbeitsblätter zu Teil I des Praktikums Arbeitsblätter zu Teil I des Praktikums Allgemeine Hilfsmittel Bitte benutzen Sie bei Schwierigkeiten mit spezifischem Domänenwissen das Internet als Recherchemöglichkeit (beispielsweise Google oder Wikipedia).

Mehr

A Datenbanken. A.1 Firebird. A.1.1 Installation des Servers. A.1.2 Installation der Beispieldatenbanken. Datenbanken 1

A Datenbanken. A.1 Firebird. A.1.1 Installation des Servers. A.1.2 Installation der Beispieldatenbanken. Datenbanken 1 Datenbanken 1 A Datenbanken A.1 Firebird Firebird ist als Datenbank konzipiert, die hauptsächlich in andere Anwendungsprogramme integriert wird. Die hier verwendete Oberfläche ist also eher untypisch für

Mehr

Visual Studio 2010 Jetzt auch für Architekten

Visual Studio 2010 Jetzt auch für Architekten TeamConf 2010 Visual Studio 2010 Jetzt auch für Architekten 06. Mai 2010 München Thomas Hemmer Chief Technology Officer thomas.hemmer@conplement.de Daniel Meixner Consultant daniel.meixner@conplement.de

Mehr

THEMA: SAS DATA INTEGRATION STUDIO FÜR MEHR TRANSPARENZ IM DATENMANAGEMENT EVA-MARIA KEGELMANN

THEMA: SAS DATA INTEGRATION STUDIO FÜR MEHR TRANSPARENZ IM DATENMANAGEMENT EVA-MARIA KEGELMANN WEBINAR@LUNCHTIME THEMA: SAS DATA INTEGRATION STUDIO FÜR MEHR TRANSPARENZ IM DATENMANAGEMENT EVA-MARIA KEGELMANN HERZLICH WILLKOMMEN BEI WEBINAR@LUNCHTIME Moderation Anne K. Bogner-Hamleh SAS Institute

Mehr

Enterprise JavaBeans Überblick

Enterprise JavaBeans Überblick Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.

Mehr

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG SODA Die Datenbank als Document Store Rainer Willems Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG vs No Anforderungskonflikte Agile Entwicklung Häufige Schema-Änderungen Relationales

Mehr

Developing SQL Databases (MOC 20762)

Developing SQL Databases (MOC 20762) Developing SQL Databases (MOC 20762) Dieser viertägige ILT-Kurs vermittelt Kursteilnehmern die Kenntnisse und Fertigkeiten zur Entwicklung einer Microsoft SQL Server-2016 Datenbank. Der Kurs konzentriert

Mehr

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1 IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

SAP BO Web Intelligence auf SQL Server [A4] Üetliberg,

SAP BO Web Intelligence auf SQL Server [A4] Üetliberg, SAP BO Web Intelligence auf SQL Server [A4] Üetliberg, 12.09.2017 www.boak.ch AGENDA Einführung Auswahl des Reporting Werkzeugs Universum & WebI Dokumente erstellen Live Demo Nebenprodukte Vertiefende

Mehr

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools MOF Meta Object Facility Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools Überblick Object Management Group (OMG) Model Driven Architecture (MDA) Exkurs: Modelle, Metamodelle MOF Architektur

Mehr

Thema 5 Domain Specific Languages

Thema 5 Domain Specific Languages SE Vertiefung Beuth-Hochschule Berlin Thema 5 Domain Specific Languages MOF-Schichten (c) schmiedecke 11 SE3-5-metamodellierung 2 Was ist eine DSL? Domain Specific Language: Sprache zur Beschreibung (Modellierung)

Mehr

Textmasterformat bearbeiten

Textmasterformat bearbeiten Michael Korp Technical Evangelist Microsoft Deutschland GmbH http://blogs.technet.com/mkorp Unterstützung für die alltäglichen IT Prozesse und den Service Desk Personen Prozesse Technologie Automatisieren

Mehr

XML in der Oracle Datenbank

XML in der Oracle Datenbank XML in der Oracle Datenbank Oracle XML DB Eine kurze Einführung Gruppe A Michaela Geierhos Galina Hinova Maximilian Schöfmann AGENDA Warum XML in einer Datenbank? Was bietet die Oracle XML DB? Unterschiedliche

Mehr

NHibernate vs. Entity Framework

NHibernate vs. Entity Framework Manfred Steyer CAMPUS 02 softwarearchitekt.at NHibernate vs. Entity Framework Ziele NHibernate und Entity Framework sowie deren Unterschiede kennen lernen 1 Agenda Kriterien Beispiel mit EF Beispiel mit

Mehr

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1 Fundamentals of Software Engineering 1 Inhaltsverzeichnis 1. Einführung 2. Allgemeine Modellbildung - Klassische Konzepte des Software Engineering- 2.1 Das Kontextmodell 2.2 Entscheidungstabellen 2.3 Zustandsmodelle

Mehr

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

Mehr

Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH

Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH Oracle9i Designer Rainer Willems Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH Page 1 1 Agenda 9i Designer & 9i SCM in 9i DS Design Server Generierung &

Mehr

Common Warehouse Metamodel und Imperfektion

Common Warehouse Metamodel und Imperfektion Common Warehouse Metamodel und Imperfektion Christoph Goebel Imperfektion und erweiterte Konzepte im Data Warehousing 2 Fragestellungen Welche Bedeutung haben Metadaten in der Information Supply Chain

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

Mehr

DIMEX Data Import/Export

DIMEX Data Import/Export DIMEX Data Import/Export PROCOS Professional Controlling Systems AG Gewerbeweg 15 FL- 9490 Vaduz PROCOS Professional Controlling Systems AG Inhaltsverzeichnis 1 ALLGEMEIN...3 2 GRUNDLEGENDE FUNKTIONEN...4

Mehr

Play Framework, MySQL, JPA, HQL, HTML, jquery,

Play Framework, MySQL, JPA, HQL, HTML, jquery, Play Framework, MySQL, JPA, HQL, HTML, jquery, Wer Mit wem Resultat 1.Kunde Schalter: Bibliothekarin Bestimmt,welcher Archivar die Zeitschrift holen geht 2. Schalter: Bibliothekarin Archivar Kontrollübergabe

Mehr

Wirtschaftsinformatik 2

Wirtschaftsinformatik 2 Wirtschaftsinformatik 2 Prof. Dr. Dr. L. Schmidt-Thieme MSc. André Busche Übung 2 1. Übungsblatt 2 2. Saalübung 02.05.12 2/ Aufgabe 2a (2 Punkte) Welche Vorteile bietet die Verwaltung von Daten in Datenbanken?

Mehr

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen Soll ich Modellieren oder Programmieren? sowohl als auch!!! Produktivitäts-Steigerung

Mehr

Es geht also um die sogenannte SQL- Data Definition Language.

Es geht also um die sogenannte SQL- Data Definition Language. In diesem Abschnitt werden wir uns die SQL Befehle ansehen, mit denen ein sogenanntes Datenbankschema angelegt, gepflegt und auch wieder gelöscht werden kann. Es geht also um die sogenannte SQL- Data Definition

Mehr

Kapitel 6: Das E/R-Modell

Kapitel 6: Das E/R-Modell Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 2013/2014 Vorlesung: Prof. Dr. Christian Böhm Übungen:

Mehr

Datenbanken Grundlagen und Design

Datenbanken Grundlagen und Design Frank Geisler Datenbanken Grundlagen und Design 3., aktualisierte und erweiterte Auflage mitp Vorwort 15 Teil I Grundlagen 19 i Einführung in das Thema Datenbanken 21 i.i Warum ist Datenbankdesign wichtig?

Mehr

Anpassung von WSS und MOSS Websites

Anpassung von WSS und MOSS Websites Anpassung von WSS und MOSS Websites Fabian Moritz Senior Consultant, SharePoint MVP ITaCS GmbH Agenda Schwachstellen in WSS (Version 2) Warum Anpassung? Ebenen der Anpassung Integration von ASP.NET 2.0

Mehr

10. Datenbank Design 1

10. Datenbank Design 1 1 Die Hauptaufgabe einer Datenbank besteht darin, Daten so lange zu speichern bis diese explizit überschrieben oder gelöscht werden. Also auch über das Ende (ev. sogar der Lebenszeit) einer Applikation

Mehr

Oracle Data Masking in der Praxis

Oracle Data Masking in der Praxis Oracle Data Masking in der Praxis Frank Hilgendorf Berenberg Hamburg Schlüsselworte Datenbanken, Data Masking, Testdatenmanagement, Anonymisierung, Enterprise Manager, Oracle Data Masking Pack, emcli Einleitung

Mehr

Inhaltsverzeichnis ... Danksagung 11. Einführung 13. Wie Sie Ihr erstes objektorientiertes Programm schreiben 23

Inhaltsverzeichnis ... Danksagung 11. Einführung 13. Wie Sie Ihr erstes objektorientiertes Programm schreiben 23 Lektion 1.......... Danksagung 11 Einführung 13 Systemanforderungen 13 Wo Sie am besten anfangen 14 Die Übungsdateien installieren und verwenden 16 Installation der Übungsdateien 16 Die Übungsdateien verwenden

Mehr

26.1.1 Vor- und Nachteile speicheroptimierter Tabellen... 764

26.1.1 Vor- und Nachteile speicheroptimierter Tabellen... 764 25.4 Verhalten bei Systemfehlern... 735 25.5 Programmierung expliziter Transaktionen... 737 25.6 Implizite Transaktionen... 741 25.7 Sperren... 743 25.7.1 Sperrebenen... 743 25.7.2 Gemeinsame Sperren (Shared

Mehr

Die Alternative zum Web-Form Modell

Die Alternative zum Web-Form Modell Marc André Zhou Solution Architect www.dev -sky.net www.just -sp.net Die Alternative zum Web-Form Modell dotnet Cologne 03.05.2013 Agenda Web Forms vs. MVC ASP.NET MVC Features Web API ODATA Eine ASP.NET

Mehr

Reporting Lösungen für APEX wähle Deine Waffen weise

Reporting Lösungen für APEX wähle Deine Waffen weise Reporting Lösungen für APEX wähle Deine Waffen weise Dietmar Aust Opal-Consulting Köln Schlüsselworte: Oracle APEX, Reporting, JasperReports, PL/PDF, BI Publisher, OPAL:XP, Doxxy, Oracle Rest Data Services

Mehr

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Dominik Kirsten Daniel Schäferbarthold Trier, 21.01.2008 1 Gliederung 1. Einführung 1.1 Anforderungen an

Mehr

Ein Ansatz zum modellgetriebenen Integrationstest von EJB-basierten Informationssystemen

Ein Ansatz zum modellgetriebenen Integrationstest von EJB-basierten Informationssystemen 1 / 30 Ein Ansatz zum modellgetriebenen Integrationstest von EJB-basierten Informationssystemen Zwischenvortrag zur Diplomarbeit Steffen Conrad (235183) Research Group Software Construction RWTH Aachen

Mehr

Objektorientierte Programmierung II

Objektorientierte Programmierung II Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem

Mehr

MDSD Einführung und Überblick

MDSD Einführung und Überblick Model Driven Software Development MDSD Einführung und Überblick Referent: Carsten Schädel Seite 2 / 33 Ziele Grundgedanke Glossar der wichtigsten Begriffe Seite 3 / 33 Glossar Seite 4 / 33 mögliche Definitionen:

Mehr

Software- /Systemarchitektur

Software- /Systemarchitektur Software- /Systemarchitektur Agenda: Definition von Softwarearchitektur Voraussetzungen Was bedeutet Objektorientierung? Wie speichert man Daten persistent? Client-Server-Architektur Schichtenarchitektur

Mehr

Konzeptueller Entwurf

Konzeptueller Entwurf Konzeptueller Entwurf UML Klassendiagrame UML Assoziationen Entspricht Beziehungen Optional: Assoziationsnamen Leserichtung ( oder ), sonst bidirektional Rollennamen Kardinalitätsrestriktionen UML Kardinalitätsrestriktionen

Mehr

UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA)

UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA) UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA) IBM Software Group, Rational Austria 2011 IBM Corporation Agenda Was ist MDA und welche Probleme

Mehr

Microsoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber

Microsoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber Microsoft.NET Framework & Component Object Model ein Vortrag von Florian Steuber Übersicht I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS

Mehr

Grundlagen der Programmierung in C Klassen

Grundlagen der Programmierung in C Klassen Grundlagen der Programmierung in C Klassen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple address pointer reference structured integral

Mehr

Hausarbeit. FOM Fachhochschule für Oekonomie & Management Frankfurt am Main. Hausarbeit zum Thema

Hausarbeit. FOM Fachhochschule für Oekonomie & Management Frankfurt am Main. Hausarbeit zum Thema Hausarbeit FOM Fachhochschule für Oekonomie & Management Frankfurt am Main Datenbankmanagement 3. Semester Hausarbeit zum Thema Zugriff auf Datenbanken unter.net mit dem Entity Framework Betreuer: Autor:

Mehr

BI Publisher Berichtswesen einfach und sicher. Alexander Klauss Centric IT Solutions GmbH

BI Publisher Berichtswesen einfach und sicher. Alexander Klauss Centric IT Solutions GmbH BI Publisher Berichtswesen einfach und sicher Alexander Klauss Centric IT Solutions GmbH Agenda Ziele der BI Publisher Module Anwendung und Vorgehensweise der BI Publisher Module Voraussetzungen BI Publisher

Mehr

MDA-Praktikum, Einführung

MDA-Praktikum, Einführung MDA-Praktikum, Einführung Prof. Dr. Peter Thiemann Universität Freiburg 02.11.2005 Was ist MDA? MDA = Model-Driven Architecture Initiative der OMG Object Management Group: CORBA, UML,... offenes Firmenkonsortium

Mehr

TopLink. das performante und flexible Persistenz- Framework

TopLink. das performante und flexible Persistenz- Framework TopLink das performante und flexible Persistenz- Framework Präsentiert von: Martin Jäkle Principal Sales Consultant Recent Magazine Ad Objekt Relationales Mapping Schreiben der Objekte in die Relational

Mehr

Kap. 9 Datenmodellierung und verwaltung

Kap. 9 Datenmodellierung und verwaltung Kap. 9 Datenmodellierung und verwaltung 9.1 Abbildung von Anwendungsobjekten auf Datenbankobjekte in ERP-Systemen 9.2 Workshop: Datenmodell, Metadaten, & Abbildung auf RDBMS in SAP R/3 Kapitel 9: Datenmodell

Mehr