.NET Entity Framework 4



Ähnliche Dokumente
XMLBeam. Einfach XML-Handling. W3L AG

NHibernate vs. Entity Framework

Visual Studio LightSwitch 2011

Werkzeuge für ein innovatives Wissensmanagement. W3L AG

Contexts and Dependency Injection. W3L AG

Vaadin TouchKit. W3L AG

Einflussfaktoren auf eine Softwarearchitektur und ihre Wechselwirkungen Entwurfsentscheidungen systematisieren

Datenhaltung für Android Model First Christian Ingenhaag, Frederik Götz, Carl Steeg

Django - ein Python Web-Framework

LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering

Skalierbare Webanwendungen mit Apache und Apache Tomcat. W3L AG

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Lokale Installation von DotNetNuke 4 ohne IIS

Universität Stuttgart Abteilung Anwendersoftware Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures

Sehr geehrte Faktor-IPS Anwender,

REGIONALES RECHENZENTRUM ERLANGEN [ RRZE] Datenbanken. RRZE-Campustreffen, Stefan Roas und Ali Güclü Ercin, RRZE

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

OP-LOG

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

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Allgemeines zu Datenbanken

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Praktikant / Abschlussarbeit im Bereich Softwareentwicklung / Mechatronik (m/w)

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Objektorientierter Entwurf (OOD) Übersicht

4D Server v12 64-bit Version BETA VERSION

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

Wer bin ich. > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre.

Übungen zur Softwaretechnik

Naked-FHIR. Code-Generierung auf Basis von HL7 FHIR Andreas Schuler, MSc. Textmasterformate durch Klicken bearbeiten

Warum beschäftigt sich ein Linux-Systemhaus mit der Installation von OTRS mit einem Microsoft SQL Server?

Datenmanagement in Android-Apps. 16. Mai 2013

EINSATZ VON MICROSOFT TERMINAL-SERVICES ODER CITRIX METAFRAME

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Code-Erzeugung aus UML-Klassendiagrammen

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Was ist LDAP. Aufbau einer LDAP-Injection. Sicherheitsmaßnahmen. Agenda. LDAP-Injection. ITSB2006 WS 09/10 Netzwerkkonfiguration und Security

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Wochenbericht. Firas Zoabi. Studienprojekt A: SIMPL. 28. Dezember 2009 I M P

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

Vortrag von: Ilias Agorakis & Robert Roginer

XML und Datenbanken. Wintersemester 2003/2004. Vorlesung: Dienstag, 13:15-15:00 Uhr IFW A36. Übung: Dienstag, 15:15-16:00 Uhr IFW A36

Hardware- und Softwareanforderungen für die Installation von California.pro

Database Change Management für Continuous Delivery. Diana Lander und Andreas Falk NovaTec Consulting GmbH

Individuelle Formulare

SJ OFFICE - Update 3.0

Neues CAS genesisworld Berechnungsmodell Unsere Jubiläums-Aktion 20 Jahre MERIDIAN

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Inheritance Strategien mit dem Entity Framework

Das Content-Management-System OpenCms im Vergleich mit TYPO3 und Joomla. Seminarvortrag von Wolfgang Neuß

Kapitel 10: Datenbankzugriff & Pufferung 2

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps

Lehrveranstaltung Grundlagen von Datenbanken

ATHOS Benutzertreffen

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Einsatzbedingungen FAMOS 3.10

Kurzanleitung zu XML2DB

w3lib - einfach Software entwickeln!

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Installationsanleitung dateiagent Pro

Software Engineering II

Refactoring relationaler Datenbank. Shaoke Wu

Installation und Inbetriebnahme von Microsoft Visual C Express

VVA Webservice Online Lieferbarkeits-Abfrage

Internet online Update (Mozilla Firefox)

SMARTtill Server mit Manager

Reporting Services und SharePoint 2010 Teil 1

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

07. November, Zürich-Oerlikon

Die Alternative zum Web-Form Modell

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

Systemanalyse I Software-Entwicklung. Die Phase Design.? Prof. Dr. Susann Kowalski

DOKUMENTATION PASY. Patientendaten verwalten

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

MOC 20487A: Entwicklung von Web- und Windows Azure- Diensten

Dr. Klaus Körmeier BlueBridge Technologies AG

SQL, MySQL und FileMaker

7. Übung - Datenbanken

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)

Internet online Update (Internet Explorer)

ORACLE Business Components for Java (BC4J) Marco Grawunder

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Mein Name ist Legion

XINDICE. The Apache XML Project Name: J acqueline Langhorst blackyuriko@hotmail.de

Oracle APEX Installer

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

ObjectBridge Java Edition

Funktionsübersicht. Beschreibung der zentralen Funktionen von PLOX

TemplaVoila T3AK07 - TYPO3 Akademie 2.0

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

A Domain Specific Language for Project Execution Models

Transkript:

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 Erweiterbarkeit Ausblick & Bewertung Kurzfassung: NHibernate EF4 vs. NHibernate

3 Objektrelationale Abbildung Was ist OR-Mapping? Technik zur Persistierung von Objekten in eine relationale Datenbank Objekte und ihre Beziehungen werden in einem relationalen Datenbankschema abgebildet Klassen werden zu Relationen (Attribute = Spalten) Ein Objekt wird zu einem Datensatz Assoziationen werden über Fremdschlüsselbeziehungen abgebildet Verlust der Objektidentität Einsatz von Primärschlüsselattributen zur Identifikation der Datensätze

4 OR-Mapping: Probleme Probleme Die Implementierung eines OR-Mappings ist zeitaufwendig Schritte: Datenbankschema entwickeln und implementieren DB-Schnittstellentreiber einbinden (ODBC/JDBC oder native Treiber) Verbindungsmanagement implementieren (Connection Pooling etc.) Mapper-Methoden implementieren (Objekt Datentupel) Verschiedene SQL-Dialekte und DB-spezifische Funktionen müssen berücksichtigt werden Lösung: ORM-Frameworks

5 ORM-Frameworks ORM-Frameworks Ermöglichen es, verschiedene Objekte in relationalen Datenbanken zu speichern Datenbankschema wird durch Metainformationen beschrieben Abstraktion von der Datenbank Unabhängige Abfragemöglichkeiten z. B.: HQL oder Entity SQL Problemloser Austausch des Datenbanksystems Verbessern die Performanz durch Lazy-Loading und Caching Vorgehensweise: Ein Modell beschreibt die Umsetzung des Fachkonzepts in ein relationales Datenbankschema (Häufig durch ein XML-Dokument) ORM-Frameworks in.net: Entity Framework NHibernate Telerik OpenAccess ORM (ehem. Vanatec)

6 ADO.NET Entity Framework Was ist das Entity Framework? Konzept für die objektorientierte Modellierung von persistenten Objekten Gehört zu den ADO.NET-Komponenten im.net-framework Die Modellierung erfolgt mit dem ADO.NET Entity Data Model Designer Bestandteil von Visual Studio ab 2008 SP1 Das Modell wird als Entity Data Model bezeichnet (XML-Dokument) Entwicklung LINQ-to-SQL.NET ab Version 3.5 (nur MS SQL Server) Entity Framework 1.NET ab Version 3.5 SP1 Entity Framework 2 Herausgabe mit Visual Studio 2010 und.net 4 Wird als Entity Framework 4 bezeichnet (EF4).NET 4

7 Entity Framework Verfahren: Ein Entity Data Model beschreibt das Fachkonzept und dessen objektrelationale Abbildung Vorgehensweisen: Reverse Engineering Das Entity Data Model wird aus einem bestehenden Datenbankschema generiert (EF1 Database First) Forward Engineering Aus dem EDM wird die Fachklasse und das Datenbankschema generiert (EF4 Model First) Datenbankanbindung Über einen ADO.NET Data Provider wird die Datenbank angesprochen Dieser Provider muss das EF unterstützen Vorhanden für: Microsoft SQL und MySQL Oracle: ab Anfang 2011 (http://www.oracle.com/technetwork/topics/dotnet/whatsnew/ oracle-entity-framework-sod-130214.pdf)

8 Entity Framework: Mapping Das Mapping besteht aus 3 Stufen Entity Data Model (EDM) CSDL: Conceptual Schema Definition Language (Objekt-Modell) MSL: Mapping Schema Language (Zuordnung zwischen Objekt und Datensatz) SSDL: Store Schema Definition Language (Datenbankschema) Quelle: http://msdn.microsoft.com/en-gb/magazine/cc163399.aspx

9 Entity Framework: Architektur Umwandlung in Objekte Liefert einen Stream von Zeilen Kapselt den Data Provider Umwandlung in SQL-Statements Liefert einen Stream von Zeilen Datenbankschnittstelle MS SQL- oder MySQL-Datenbank Quelle: http://msdn.microsoft.com/en-gb/library/bb399567.aspx

10 Praxisbeispiel DEMO

11 Quellcode-Generierung Text Template Transformation Toolkit (T4) Ein Verfahren für die Codegenerierung Eine Transformationsvorlage beschreibt das Vorgehen (.tt-datei) Bestandteil von Visual Studio ab 2008 Allerdings ohne eigenen T4-Editor (kein Intelli-Sense & Syntax-Highlighting) Plug-In: tangible T4-Editor (http://t4-editor.tangible-engineering.com) Einsatz im Entity-Framework: Über eine T4-Vorlage werden aus dem Entity Data Model die erforderlichen Klassen generiert Microsoft stellt zwei Vorlagen: ADO.NET EntityObject Generator o Alle Entites erben von EntityObject (+ Änderungsverfolgung) ADO.NET POCO Entity Generator (Onlinevorlage) o Plain Old CLR Object (schmalere Objekte - WCF)

12 Performanz-Mechanismen Eager Loading (mit Include) Objekte mit Abhängigkeiten laden Include: context.customers.include("orders"); Kunden direkt mit ihren Bestellungen laden Lazy-Loading EF1: Objekte werden nicht automatisch nachgeladen (Explizit mit load()) if(!onecustomer.orders.isloaded) onecustomer.orders.load(); EF4: Lazy-Loading ist Transparent Caching Kein Aufruf der Load()-Methode mehr nötig Der ObjectContext stellt einen Container für Objekte im Arbeitsspeicher dar Mit Identitätsauflösung, Zustandsverwaltung und Änderungsnachverfolgung Ein Second-Level-Cache wird nicht angeboten

13 Erweiterbarkeit Erweitern von generierten Klassen Zusätzliche Methoden in partiellen Klassen implementieren Erweiterung durch Extension Methods (statische Funktionen) Code-Generator T4-Vorlage modifizieren oder eigene Vorlage schreiben Einflussnahme auf Standard-Operationen wie z. B. DeleteObject() möglich Eigenen Entity-Framework-Provider schreiben (Aufwendig!!) Second-Level-Cache Protokollierung implementieren Beispiel: http://code.msdn.microsoft.com/efsampleprovider http://code.msdn.microsoft.com/efproviderwrappers

14 Ausblick Vorgehensweise: Code First Programming Fachklassen als POCOs selbst implementieren Mapping: Direkt über Attribute in den Klassen (Java: Annotations) [Key] public int ISBN { get; set; } [Required] [MaxLength(120)] public string Title { get; set; } Als Quellcode im DbContext (OnModelCreating) builder.entity<book>().haskey(b => b.isbn); builder.entity<book>().property(b => b.title).isrequired(); Bereits in der Community Technology Preview 4 verfügbar http://tinyurl.com/ef4ctp4

15 Entity Framework 4 Vorteile: GUI-Unterstützung durch Visual Studio 2010 Rapid Development Support durch Microsoft Generiert Fachklassen und Datenbankschema LINQ-Unterstützung Datenbindung durch EntityDataSource-Objekte Nachteile: Modell kann nicht zur Laufzeit verändert werden Modell basiert auf einem sehr komplexen XML-Schema Wenige Data-Provider vorhanden Kein 2nd Level Cache Noch ein junges Framework Generierte Fachkonzept-Klassen dürfen nicht modifiziert werden Erweiterung durch partielle Klassen

16 Kurzfassung NHIBERNATE

17 NHibernate NHibernate Portierung von Hibernate nach.net Wird seit Dezember 2001 als quelloffenes Projekt entwickelt Unterstützung von RedHat (JBoss-Community) Verfahren: Ein XML-Dokument beschreibt die Umsetzung eines Fachkonzepts auf ein relationales Datenbankschema Das Datenbankschema kann aus dem Modell generiert werden Verwendet eine ADO.NET Connection für die Kommunikation mit der Datenbank Der Data Provider muss den Funktionsumfang von.net 2.0 unterstützen Vorhanden für: o MS-SQL; Oracle; MySQL; SQLite; PostgreSQL u. FireBird

18 NHibernate Vorteile: Basiert auf Hibernate Offener Quellcode Erweiterbar Klares Mapping (XML) Unterstützung von SQLite als dateibasierte Datenbank DB-Modell kann zur Laufzeit geändert/erweitert werden Data-Provider für alle relevanten Datenbankserver Nachteile: Hohe Komplexität durch den großen Funktionsumfang Keine GUI-Unterstützung Fachklassen müssen selbst implementiert werden LINQ-Unterstützung erst ab Version 3.x

19 Der Vergleich Entity Framework 4 vs. NHibernate

20 Benchmark Bedingungen: Entity Framework 4 (4.0.0.0 [NET4]) Lazy-Loading: Aktiv POCO-Vorlage NHibernate (3.0.0.2002 [Beta2]) Lazy-Loading: Aktiv (Castle-Provider) Second-Level-Cache: Deaktiviert Datenbank (Lokal) Microsoft SQL2008 - Version: 10.50.1600.1 Messungen: Insert: Datensatz anlegen (Gutschrift mit Position) Select: Positionen selektieren (LINQ) und Iteration über die Ergebnismenge Update: Laden und Ändern einer Position

21 Benchmark Insert Operation 1.000 5.000 10.000 50.000 EF4 Insert 267,8 [ms] 1346,7 [ms] 2751,3 [ms] 14085,2 [ms] NH3 Insert 201,8 [ms] 876,3 [ms] 1873,7 [ms] 8852,8 [ms]

22 Benchmark Select Operation 1.000 5.000 10.000 50.000 EF4 Select 24,2 [ms] 127,8 [ms] 253,6 [ms] 1314,4 [ms] NH3 Select 50,7 [ms] 264,5 [ms] 546,5 [ms] 2742,1 [ms]

23 Benchmark Update Operation 1.000 5.000 10.000 50.000 EF4 Update 185,7 [ms] 1028,1 [ms] 2074,9 [ms] 10430,7 [ms] NH3 Update 229,4 [ms] 1371 [ms] 2405,8 [ms] 9661,7 [ms]

24 Welcher Mapper ist der Richtige? NHibernate Entity Framework Volle Kontrolle über das OR-Mapping Unterstützung durch Visual Studio (GUI) Besser bei komplexen Datenbankstrukturen Rapid Development schnelle Ergebnisse Enterprise-Projekte Kleine Projekte mit geringerer Komplexität

Vielen Dank! 25

Inhouse-Schulungen W3L-Akademie Flexibel online lernen und studieren! Wir bieten Inhouse-Schulungen und Beratung durch unsere IT-Experten und Berater. Schulungsthemen Softwarearchitektur (OOD) Requirements Engineering (OOA) Nebenläufige & verteilte Programmierung Gerne konzipieren wir auch eine individuelle Schulung zu Ihren Fragestellungen. In Zusammenarbeit mit der Fachhochschule Dortmund bieten wir zwei Online-Studiengänge B.Sc. Web- und Medieninformatik B.Sc. Wirtschaftsinformatik und 7 Weiterbildungen im IT-Bereich an. Sprechen Sie uns an! Tel. 0231/61 804-0, info@w3l.de Besuchen Sie unsere Akademie! http://akademie.w3l.de