SlideShare a Scribd company logo
1 of 9
Download to read offline
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
manfred.steyer@SOFTWAREarchitekt.at
SOFTWAREarchitekt.at
ManfredSteyer
Contact

More Related Content

Similar to Datenbasierte Services mit Entity Framework und Co.

Hypermedia mit der ASP.NET Web API
Hypermedia mit der ASP.NET Web APIHypermedia mit der ASP.NET Web API
Hypermedia mit der ASP.NET Web API
Alexander Zeitler
 
MT AG: Ajax Rezepte fuer web services mit jquery und ajax
MT AG: Ajax Rezepte fuer web services mit jquery und ajaxMT AG: Ajax Rezepte fuer web services mit jquery und ajax
MT AG: Ajax Rezepte fuer web services mit jquery und ajax
MT AG
 

Similar to Datenbasierte Services mit Entity Framework und Co. (20)

WebAPIs mit ASP.NET MVC 6
WebAPIs mit ASP.NET MVC 6WebAPIs mit ASP.NET MVC 6
WebAPIs mit ASP.NET MVC 6
 
Datenbasierte Services mit Entity Framework und Co.
Datenbasierte Services mit Entity Framework und Co.	Datenbasierte Services mit Entity Framework und Co.
Datenbasierte Services mit Entity Framework und Co.
 
Hypermedia mit der ASP.NET Web API
Hypermedia mit der ASP.NET Web APIHypermedia mit der ASP.NET Web API
Hypermedia mit der ASP.NET Web API
 
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
Überblick zu MVC6 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015
 
Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1
 
API-Industrie
API-IndustrieAPI-Industrie
API-Industrie
 
Mobile Development mit ASP.NET MVC 4
Mobile Development mit ASP.NET MVC 4Mobile Development mit ASP.NET MVC 4
Mobile Development mit ASP.NET MVC 4
 
Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1
 
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)
 
Ist GraphQL das bessere REST
Ist GraphQL das bessere RESTIst GraphQL das bessere REST
Ist GraphQL das bessere REST
 
Apache Solr Revisited 2015
Apache Solr Revisited 2015Apache Solr Revisited 2015
Apache Solr Revisited 2015
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
 
RESTful WebServices
RESTful WebServicesRESTful WebServices
RESTful WebServices
 
EPO API/4 Cloud als innovativer SAP-Konnektor
EPO API/4 Cloud als innovativer SAP-KonnektorEPO API/4 Cloud als innovativer SAP-Konnektor
EPO API/4 Cloud als innovativer SAP-Konnektor
 
Net@night asp.net mvc
Net@night asp.net mvcNet@night asp.net mvc
Net@night asp.net mvc
 
REST mit APEX 18.1
REST mit APEX 18.1REST mit APEX 18.1
REST mit APEX 18.1
 
PHPblue LOS!NRW
PHPblue LOS!NRWPHPblue LOS!NRW
PHPblue LOS!NRW
 
MT AG: Ajax Rezepte fuer web services mit jquery und ajax
MT AG: Ajax Rezepte fuer web services mit jquery und ajaxMT AG: Ajax Rezepte fuer web services mit jquery und ajax
MT AG: Ajax Rezepte fuer web services mit jquery und ajax
 
Cloud APIs - Wettbewerbsvorteile durch Einbindung externer Services
Cloud APIs - Wettbewerbsvorteile durch Einbindung externer ServicesCloud APIs - Wettbewerbsvorteile durch Einbindung externer Services
Cloud APIs - Wettbewerbsvorteile durch Einbindung externer Services
 
Jax07 - Mixing Ajax Swing and Flash
Jax07 - Mixing Ajax Swing and FlashJax07 - Mixing Ajax Swing and Flash
Jax07 - Mixing Ajax Swing and Flash
 

More from Manfred Steyer

More from Manfred Steyer (20)

Der neue Component Router für Angular 2
Der neue Component Router für Angular 2Der neue Component Router für Angular 2
Der neue Component Router für Angular 2
 
Datenbindung und Performance in Angular 2
Datenbindung und Performance in Angular 2Datenbindung und Performance in Angular 2
Datenbindung und Performance in Angular 2
 
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/storeSingle Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
 
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
 
Angular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtet
Angular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtetAngular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtet
Angular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtet
 
Datengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkDatengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity Framework
 
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
 
The newst new Router for Angular 2 ("Version 3")
The newst new Router for Angular 2 ("Version 3")The newst new Router for Angular 2 ("Version 3")
The newst new Router for Angular 2 ("Version 3")
 
Databinding and Performance-Tuning in Angular 2
Databinding and Performance-Tuning in Angular 2Databinding and Performance-Tuning in Angular 2
Databinding and Performance-Tuning in Angular 2
 
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId ConnectModern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
 
Progressive web apps with Angular 2
Progressive web apps with Angular 2Progressive web apps with Angular 2
Progressive web apps with Angular 2
 
Der neueste neue Router (Version 3) für Angular 2
Der neueste neue Router (Version 3) für Angular 2Der neueste neue Router (Version 3) für Angular 2
Der neueste neue Router (Version 3) für Angular 2
 
Webpack
WebpackWebpack
Webpack
 
ASP.NET Core 1 for MVC- and WebAPI-Devs
ASP.NET Core 1 for MVC- and WebAPI-DevsASP.NET Core 1 for MVC- and WebAPI-Devs
ASP.NET Core 1 for MVC- and WebAPI-Devs
 
EF Core 1: News features and changes
EF Core 1: News features and changesEF Core 1: News features and changes
EF Core 1: News features and changes
 
Angular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 LondonAngular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 London
 
Angular 2 - SSD 2016 London
Angular 2 - SSD 2016 LondonAngular 2 - SSD 2016 London
Angular 2 - SSD 2016 London
 
ASP.NET Web API Deep Dive - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 LondonASP.NET Web API Deep Dive - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 London
 
Was bringt Angular 2?
Was bringt Angular 2?Was bringt Angular 2?
Was bringt Angular 2?
 
.NET Summit 2016 München: EcmaScript 2015+ with TypeScript
.NET Summit 2016 München: EcmaScript 2015+ with TypeScript.NET Summit 2016 München: EcmaScript 2015+ with TypeScript
.NET Summit 2016 München: EcmaScript 2015+ with TypeScript
 

Datenbasierte Services mit Entity Framework und Co.