René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

48
René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick

Transcript of René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Page 1: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

René LeupoldIS DeveloperComgate Solutions AG

Entity FrameworkEin Überblick

Page 2: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

www.dnug-bern.ch Grösste aktive .NET User Group der SchweizRegelmässige Treffen mit Schwerpunktthemen

Nächste EventsMo, 30.5.2011User Experience Crash KursDo, 9.6.2011 DotNetNuke

.NET User Group Bern

Page 3: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Agenda

ÜberblickArchitekturVorgehensweisenPhilosophie EDM-Designer/Code FirstVergleich ObjectContext/DbContextZusammenfassung

Page 4: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Überblick

Page 5: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

ÜberblickWas ist neu mit Visual Studio 2010 SP1

VS 2010 SP1 != EF 4.1Performance

EDM DesignerEdmGen.exe

Anpassungen STE Code-Generierungsvorlage

Page 7: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Überblick Unterstützte Datenbanken

DB2 (OpenLink, IBM)Firebird (OpenLink, Firebird)Informix (OpenLink, IBM)MySQL (MySQL, DevArt, OpenLink)Oracle (Oracle, DevArt, Progress, OpenLink)Postgres (DevArt, OpenLink, Npsql)SQLite (DevArt, System.Data.SqlLite)Sybase (Progress, OpenLink, Sybase)Synergy (Synergex)U2 (IBM)VistaDB

Page 8: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Architektur

Page 9: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

ArchitekturEntity Data Model (EDM)

Entwicklung auf Anwendungs-ebeneUnabhängig vom logischenModell des SpeichersSeparation of Concerns

CSDLMSLSSDL

Kernkonzept ERM

EDM

Conceptual (CSDL)

Mapping (MSL)

Storage (SSDL)

Page 10: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

ArchitekturEntity Framework 4.0

Object Services

Entity Client

Provider

ADO.NET

SQL eSQLLinq to Entities

Page 11: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

ArchitekturEntity Framework 4.1

DbContext

Connection

Entity Framework 4.0

Object Services

Model Builder

Page 12: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Vorgehensweisen

Page 13: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

VorgehensweisenBottom up

DB First

DB Schema Mapping Klassen

Page 14: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Bottom up

Demo

Page 15: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

VorgehensweisenMiddle out

Model First

Mapping

Klassen

DB Schema

Page 16: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Middle out

Demo

Page 17: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

VorgehensweisenTop down

Code First

Klassen Mapping DB Schema

Page 18: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Top Down

Demo

Page 19: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

VorgehensweisenTop down

Code First

Page 20: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

VorgehensweisenMeet in the middle

Problematisch

Mapping

Klassen

DB Schema

Page 21: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

EDM-Designer/Code First

Page 22: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

PhilosophieEDM-Designer

ModellzentriertKonfigurationCode GenerierungAnpassbar mit T4 und WorkflowsDouble derived pattern (partial)

Page 23: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

EDM Designer

Demo

Page 24: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

PhilosophieCode First

CodezentriertConventions over ConfigurationPatterns and Practices

Page 25: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

PhilosophieCode First Konventionen

Mehr als 20 KonventionenDie Konventionen verstehen ist wichtigKönnen entfernt werden

Hinzufügen von Konventionen mit EF 4.1 nicht möglich

Page 26: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

PhilosophieCode First Konventionen

Page 27: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

PhilosophieCode First Konfiguration

Fluent Mapping API

Page 28: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

PhilosophieCode First Konfiguration

Data Annotations

Page 29: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Vergleich ObjectContext/DbContext

Page 30: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

VergleichObjectContext/DbContext

ConnectionStringEntitätscontainerLaden abhängiger ObjekteValidierungDirektes SQLCacheChange trackingOptimistic Concurrency

Page 31: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

VergleichObjectContext/DbContext

ConnectionString

Page 32: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

VergleichObjectContext/DbContext

Entitätscontainer

Page 33: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

VergleichObjectContext/DbContext

Laden abhängiger Objekte

Page 34: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

VergleichObjectContext/DbContext

Validierung

Page 35: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

VergleichObjectContext/DbContext

Direktes SQL

Page 36: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

VergleichObjectContext/DbContext

Cache

Page 37: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

VergleichObjectContext/DbContext

Change tracking

Page 38: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

VergleichObjectContext/DbContext

Optimistic Concurrency

Page 39: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Wann EDM-DesignerModellzentriert

DB FirstDatenbank bestehtDetailanforderungen auf Ebene DBKonkurrenzierende Richtlinien DB

Model FirstRoundtrip ermöglichenArchitektur und Coding-Standards auf Ebene PersistenzmodellVerwenden von T4-Vorlagen und WorkflowsEDM mit eigenen Metadaten für pragmatische Modelle

Page 40: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Wann Code FirstCodezentriert

Der Code beschreibt das Modell (DDD)Fehlende Akzeptanz zum EDM-DesignerModellierung mit UML/DSLDB Schema leitet sich aus Klassenmodell ab

Page 41: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

CodezentriertVorteile

Sehr Effizient durch KonventionenData Annotations als Grundlage für DB SchemaValidierung mit SaveChanges

Über alle Layer :-) Data Annotations und Fluent Mapping API kombinierbar

Fluent Mapping API gewinnt beim DB SchemaExplizites Laden mit FilterVereinfachtes Change Tracking

Page 42: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Code FirstHerausforderungen

Kein DB Schema UpdateUmweg über Dev/Int/Prod

Pluggable Conventions in der CTP5 hängen gebliebenKein Support für Create, Update und Delete-ProzedurenKeine Unterstützung für

Compiled QueriesEntity SQL (nur über IObjectContextAdapter)

Keine Erstellung von FK IndizesMinimale Rechte für den Datenbankbenutzer auf Prod

Page 43: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Zusammenfassung

EF Entwicklung ist aktuell losgelöst von SP´sEDM ist eine Implementierungsform des ERMDbContext ist ein Wrapper um den ObjectContext

Einfluss durch DbModelBuilderEF unterstützt nun alle VorgehensweisenDbContext für Code FirstEDM-Designer

ObjectContext oder DbContext

Page 44: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

ZusammenfassungMapping-SzenarienMapping DB First Model First Code First

1 : m bidirectional Ja (Default) Ja (Default) Ja

1 : m unidirectional Ja (FK-A) Ja (FK-A) Ja

m : n Ja Ja Ja

1 : 1 Ja Ja Ja

Selbstreferenzierung Ja Ja Ja

1 Klasse : m Tabellen Ja Ja Ja (mb)

m Klassen : 1 Tabelle (CT) Ja Ja Ja

m Klassen : 1 Tabelle Split Ja Bedingt Ja (mb)

TPH Ja Bedingt Ja (Default)

TPT Ja Ja (Default) Ja (mb)

TPC Bedingt Bedingt Bedingt (mb)

Page 46: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

ZusammenfassungBuch-Empfehlungen

ISBN-13: 978-0596807269

ISBN-13: 978-1430227038

Page 47: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

Q&A

Page 48: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.

© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.