Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

25
ADO.NET Entity Framework { LINQ und Konsorten} Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH

Transcript of Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

Page 1: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

ADO.NET Entity Framework{ LINQ und Konsorten}Dariusz Parys

Developer EvangelistMicrosoft Deutschland GmbH

Page 2: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

Agenda

Warum LINQ?LINQ to…

Was es so alles gibtEinführung ADO.NET Entity Framework

Abfragen von DatenModifizieren von DatenConcurrencyTransaktionenStored Procedures

Zusammenfassung

Page 3: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

Datenzugriff bisher…

Page 4: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

Das LINQ Projekt

C# 3.0Visual Basic

9.0Others

.NET Language Integrated Query

LINQ toObjects

LINQ toDataSet

s

LINQ toSQL

LINQ toEntities

LINQ toXML

Objects

<book> <title/> <author/> <year/> <price/></book>

XML

Relational

Page 5: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

{ LINQ to … }

Dariusz ParysDeveloper EvangelistD&PE

demo

Page 6: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

ADO.NET Entity Framework

StoreSQL

Server

.NET Provider

V2.0

Conceptual Model

.NET Provider(EntitySQL)

ORM & LINQ

V3.0

Map

pin

g

DB/2 Oracle Weitere

Page 7: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

LINQ to Entities vs. LINQ to SQL

Schema unabhängigDatenbank unabhängigHöhere Abstraktion

SSDL, CSDL, C-S Map

Mehr Design-Möglichkeiten

Table-InheritanceAssoziationen

Nicht in VS 2008Momentan Beta 3

Einfach zu nutzenClient / Server AnwendungenNur SQL ServerDirektes Mapping von Schema auf KlassenVerfügbar in VS 2008

LINQ TO ENTITIES LINQ TO SQL

Page 8: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

LINQ to Entities

API in folgenden Assemblies implementiert

System.Data.Entity.dllSystem.Data.Entity.Design.dll

Eine Reihe von neuen NamespacesSystem.Data.EntitySystem.Data.ObjectsUnd viele mehr...

Stand der DingeEntity Framework Runtime Beta 3Entity Framework Tools CTP 2

Page 9: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

{ Entity Modell erstellen}

Dariusz ParysDeveloper EvangelistD&PE

demo

Page 10: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

Überblick ObjectContext & Co.

StateManagemen

t

Connection

provider

MetadataMSL

SSDL

CSDL

CRUD

Page 11: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

{ Daten abfragen }

Dariusz ParysDeveloper EvangelistD&PE

demo

Page 12: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

{ Daten modifizieren }

Dariusz ParysDeveloper EvangelistD&PE

demo

Page 13: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

Concurrency

col1 col2 col3 col4

1 A B CY

Current

col4col1 col2 col3

1 A B C

Original

col4col1 col2 col3

1 A B C

entity

col1 col2 col3 col4

1 A B CX

X

SaveChanges()

Überschreiben?Exception?

Page 14: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

{ Concurrency }

Dariusz ParysDeveloper EvangelistD&PE

demo

Page 15: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

Transaktionen

MöglichkeitenSaveChanges() Erstellt eine TransaktionTransactionScope Klammer um Operationen

SaveChanges()

Page 16: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

{ Transaktionen }

Dariusz ParysDeveloper EvangelistD&PE

demo

Page 17: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

Stored Procedures

Stored procedures

KontrolleSicherheitPerformance?

LINQ to Entities kann Stored Procedures nutzen

Page 18: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

{ Stored Procedures }

Dariusz ParysDeveloper EvangelistD&PE

demo

Page 19: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

Weitere wichtige Dinge...

Mit mehreren ObjectContext Objekten arbeitenHooks im generierten CodeEigenes Domänenmodell integrierenAbleitungenMetadaten

Page 20: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

Mehrere ObjectContext Objekte

Manchmal benötigt man mehrere...

Web Farm

Server 1

Server 2

client

entity 1

entity 2

entity N

querydetach

serializeget

entity 1

entity 2

entity N

updateentity 1

entity 2

entity N

attach

update

Page 21: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

Zusammenfassung

Lernen Sie mit LINQ umzugehenLINQ to SQL

Pragmatischer Client/Server AnsatzNur SQL Server

LINQ to EntitiesVolle FlexibilitätDatenbankunabhängig

Page 22: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

Kontakt: Dariusz Parys

Mein Blog:http://blogs.msdn.com/dparys

Meine Email:[email protected]

Page 23: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

Visual Studio 2008weitere Angebote

Visual Studio Team System Information DayRegelmäßige ganztägige Informationsveranstaltung von MicrosoftPraxisnahe Demos & viel Raum für DiskussionenDetails & Anmeldung: www.event-team.com/events/visualstudio

TeamConf 2008 – Die Visual Studio Team System KonferenzVSTS in der Praxis - 22.-24. April 2008 in MünchenAnwenderberichte (Siemens, ABB, Commerzbank, Datev, Münchener Rück,..)Fach- und TechnologievorträgeVortragsprogramm und Anmeldung: www.teamconf.de

Visual Studio Launch PromotionTauschen Sie Ihre Visual Studio Standard in eine höherwertige Visual Studio Edition Ihrer Wahl Anrechnung in Höhe von 299 € beim Kauf eines anderen VS Produktesvom 19. Februar bis zum 30. April 2008Nur bei den Partnern: PC Ware, SoftExpress, SOS und Zoschke (befinden sich alle in der Ausstellerhalle)

Page 24: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

Ask the ExpertsWir freuen uns auf Ihre Fragen: Technische Experten stehen Ihnen während der gesamten Veranstaltung in der Haupthalle zur Verfügung.

Page 25: Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.

© 2007 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.