Datenbasierte Services mit Entity Framework und Co.

9
1 Datengetriebene Web-APIs mit Entity Framework Manfred Steyer twitter.com/ManfredSteyer ManfredSteyer Buch-Projekte Page 2

Transcript of Datenbasierte Services mit Entity Framework und Co.

1

Datengetriebene Web-APIs mit Entity Framework

Manfred Steyer

twitter.com/ManfredSteyer

ManfredSteyer

Buch-Projekte

Page 2

2

Ziel

Möglichkeiten für datengetriebene Web-APIs

mit EF und ASP.NET Web API anhand eines

Beispiels aufzeigen

Folie 3

Nicht-Ziele

Einen Client entwickeln

Einführung in Entity Framework

Folie 4

3

Inhalt

Warum datenbasierte APIs?

Überblick: Web API und EF

Lazy Loading und Web APIs

Eager Loading und Serialisierungsoptionen

Change Tracking in verteilten Systemen

Abfragen via HTTP mit OData

Folie 5

Warum datenbasierte APIs?

4

Services sind das Rückgrat

einer Anwendung

Folie 7

HTTP-Services, Web APIs

GET /flights/Graz-Frankfurt?date=2016-12-24 HTTP/1.1

Host: www.softwarearchitekt.at

Accept: text/json

HTTP/1.1 200 OK

Content-Type: text/json

[

{"Time": "1700", "FlightNumer":"LH4711", ...},

{"Time": "1800", "FlightNumer":"LH4712", ...},

]

5

FALLSTUDIE

Page 9

Ansätze für Change Tracking

Self Tracking Entities

Nachteil: Client muss Zustand setzen

Pro geändertem Objekt ein Serviceaufruf

Nachteil: Performance, Konsistenz?

Abgleich mit Datenbank

Nachteil: Performance

Abgleich mit ursprünglicher Version ("huckepack")

Nachteil: Performance

Folie 10

6

ODATA

Page 11

Was ist OData?

Offener Standard

Definiert wie Daten über HTTP abgefragt

werden können

?$filter=Sterne ge 3&$orderby=Bezeichnung desc

Definiert wie Daten über HTTP bearbeitet

werden können

Folie 12

7

NuGet-Package

Microsoft.AspNet.Odata

Folie 13

OData-Abfragen aktivieren

Folie 14

[EnableQuery]

public IQueryable<Hotel> Get()

{

[…]

}

8

DEMO

Page 15

Zusammenfassung

Lazy Loading deaktivieren

Serializer aus zyklische Verweise vorbereiten

(Eager Loading)

Self Tracking Entities

OData für flexible Abfragen

Folie 23

9

[email protected]

SOFTWAREarchitekt.at

ManfredSteyer

Contact