Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Datengetriebene Web APIs mit Entity Framework

337 views

Published on

Präsentation von DWX 2016, Juni 2016 in Nürnberg

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Datengetriebene Web APIs mit Entity Framework

  1. 1. 1 Datengetriebene Web-APIs mit Entity Framework Manfred Steyer twitter.com/ManfredSteyer ManfredSteyer Buch-Projekte Page  2
  2. 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. 3. 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. 4. 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. 5. 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. 6. 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. 7. 7 NuGet-Package Microsoft.AspNet.Odata Folie 13 OData-Abfragen aktivieren Folie 14 [EnableQuery] public IQueryable<Hotel> Get() { […] }
  8. 8. 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. 9. 9 manfred.steyer@SOFTWAREarchitekt.at SOFTWAREarchitekt.at ManfredSteyer Contact

×