SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
1
Entity Framework 7:
Neuerungen und Änderungen beim Datenzugriff
Manfred Steyer
ManfredSteyer
Side-Projects
Page  2
www.software-engineering-leadership.de
2
Inhalt
Motivation
Entity Framework heute
Aktuelle Entwicklungen
Entity Framework morgen
DEMO
Fazit
Folie 3
MOTIVATION
Page  4
3
ADO.NET "in a Nutshell"
Page  5
using (DbConnection conn = new SqlConnection(
"Data Source=(LocalDb)v11.0;Initial Catalog=HotelDb;[…]"))
{
conn.Open();
using (DbCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from Hotel where RegionId = 3";
using (DbDataReader r = cmd.ExecuteReader())
{
while (r.Read())
{
Console.WriteLine(r["Bezeichnung"]);
}
}
}
}
Entity Framework
•O/R-Mapper
•Datenbankunabhängigkeit
•Abfragen via LINQ
4
ENTITY FRAMEWORK HEUTE
Page  7
O/R-Mapper
EF
5
Spielarten
Folie 9
• Model First
• DB First
Mapping via XML
• Code First
• Code First mit Reverse Engineering
Mapping via Code
Code First erscheint überlegen
Folie 10
Sowohl DB-First
als auch Model-
First möglich
Quellcode-
verwaltung
Für Entwickler
intuitiver
Mehr Freiheiten
für Entwickler
Code-
Konfiguration zur
Laufzeit
Konventionen
Migrations
6
DbContext
Objektmodell
Folie 11
ObjectContext
AKTUELLE ENTWICKLUNGEN
Page  12
7
Aktuelle Entwicklungen
Folie 13
ENTITY FRAMEWORK
MORGEN
Page  14
8
Ziele
Reichweite
• .NET Core, WinRT
• NoSQL
Aufräumen
• Code First
• RIP ObjectContext
Folie 15
Nicht-Ziele
Folie 16
• Ja, aber nur wo es sinnvoll
ist
API-
Änderungen
• Ja, aber Unterschiede zu
RDBMS sollen nicht durch
Abstraktion verborgen
werden
NoSQL
9
Migration
Code muss abgeändert werden
Bestehende Version 6.x existiert weiterhin
Funktionsumfang
Folie 18
EF 6
EF 7
10
Funktionsumfang
Folie 19
EF 6
EF 7.x+
Einige Einschränkungen in 7.0
 M:N-Beziehungen
 Vorerst mit jeweils zwei 1:N-Beziehungen modellieren
 Lazy Loading
 Vererbungsbeziehungen nur eingeschränkt
 Komplexe Typen
 Validieren vor dem Speichern
 Validierung findet nur in DB statt
 Eigene Konventionen
 Keine Stored Procedures
11
7.0 oder 6.x
Web mit
.NET Core
EF 7.0
Mobile EF 7.0
Sonst EF 6.0
Code Only
MODELL ERSTELLEN
Page  22
12
NuGet-Pakete
EntityFramework.Commands
EntityFramework.SqlServer
VS 2013: http://tinyurl.com/ef7-vs2013
Folie 23
Entitäten
Page  24
public class Region
{
public int RegionId { get; set; }
public string Bezeichnung { get; set; }
public List<Hotel> Hotels { get; set; }
}
Konvention für PK: Id oder Klassenname + Id
13
Entitäten
public class Hotel
{
public int HotelId { get; set; }
public string Bezeichnung { get; set; }
public int Sterne { get; set; }
public int RegionId { get; set; }
public Region Region { get; set; }
}
Konvention für FK:
- PK der anderen Seite (RegionId)
- Navigationseigenschaft+PK (RegionRegionId)
- Typ+PK (RegionRegionId)
Context
Folie 26
public class HotelDbContext : DbContext
{
public DbSet<Hotel> Hotels { get; set; }
public DbSet<HotelBuchung> HotelBuchungen { get; set; }
public DbSet<Region> Region { get; internal set; }
protected override void
OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(
@"Data Source=(localdb)ProjectsV12;[…]");
}
}
14
Datenbank erzeugen
context.Database.EnsureDeleted()
context.Database.EnsureCreated()
Folie 27
DEMO
Page  28
15
OBJEKTE ABRUFEN
Objekte laden
using (var ctx = new HotelDbContext())
{
var regionen = ctx
.Region
.Where(r => r.Name == "Hamburg")
.OrderBy(r => r.Name)
.ToList();
[…]
}
16
OBJEKTE MANIPULIEREN
Objekte anlegen
Benachbarte Objekte werden in EF 7
im Gegensatz zu EF 6 nicht automatisch eingefügt
public void Insert(Hotel h)
{
using (var ctx = new HotelDbContext())
{
ctx.Hotel.Add(h);
ctx.SaveChanges();
}
}
17
Überwachen von Objekten
 DbContext überwacht sämtliche ihm bekannten Objekte auf
Änderungen
 Neu hinzugefügt Objekte
 Geladene Objekte
 Dazu kommt Dirty Checking zum Einsatz
 SaveChanges überträgt diese Änderungen in die DB
using(var ctx = new HotelDbContext()) {
Hotel h = new Hotel();
h.Bezeichnung = "Hotel Mama";
h.RegionId = 3;
h.Sterne = 4;
ctx.Hotel.Add(h);
ctx.SaveChanges();
h.Sterne++;
ctx.SaveChanges();
}
Objekte anlegen
Ab hier ist h abgehängt (detached)
18
Abgehängte Objekte aktualisieren
Benachbarte Objekte werden
nicht angehängt oder aktualisiert
public void Update(Hotel h)
{
using (var ctx = new HotelDbContext())
{
ctx.Hotel.Update(h);
ctx.SaveChanges();
}
}
DEMO
Page  36
19
KONVENTIONEN ÜBER
FLUENT-API ANPASSEN
Page  37
OnModelCreating
Page  38
public class HotelContext : DbContext
{
[…]
protected override void OnModelCreating(
ModelBuilder modelBuilder)
{
[…]
}
}
20
DEMO
Page  39
Fazit
O/R-Mapping automatisiert monotone Aufgaben
Vereint Vorteile von OO und RDBMS
Frühjahresputz mit Version 7
 Entfernen von Altlasten und Mehrgleisigkeiten
Zeitpunkt passend vor Hintergrund von .NET Core
Reichweite wird erhöht: WinRT und NoSQL
Folie 40
21
[mail] manfred.steyer@SOFTWAREarchitekt.at
[web] SOFTWAREarchitekt.at
[twitter] ManfredSteyer
Kontakt

Mais conteúdo relacionado

Semelhante a Überblick zu EF7 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015

Connecting Android - Externe Hardware mit dem grünen Roboter verbinden
Connecting Android - Externe Hardware mit dem grünen Roboter verbindenConnecting Android - Externe Hardware mit dem grünen Roboter verbinden
Connecting Android - Externe Hardware mit dem grünen Roboter verbindeninovex GmbH
 
.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1Manfred Steyer
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...GFU Cyrus AG
 
Dynamische Webprogrammierung mit der GoogleMaps API
Dynamische Webprogrammierung mit der GoogleMaps APIDynamische Webprogrammierung mit der GoogleMaps API
Dynamische Webprogrammierung mit der GoogleMaps APIChristian Kehl
 
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJSWebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJSOliver Hader
 
Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?QAware GmbH
 
Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Josef Adersberger
 
Citrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-Strategie
Citrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-StrategieCitrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-Strategie
Citrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-StrategieDigicomp Academy AG
 
.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 TypeScriptManfred Steyer
 
Open icf (open identity connector framework) @ forgerock deutsch
Open icf (open identity connector framework) @ forgerock   deutschOpen icf (open identity connector framework) @ forgerock   deutsch
Open icf (open identity connector framework) @ forgerock deutschHanns Nolan
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & DominoUlrich Krause
 
digitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
digitalSTROM Developer Day 2011: digitalSTROM-Server-AppsdigitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
digitalSTROM Developer Day 2011: digitalSTROM-Server-AppsdigitalSTROM.org
 
Java Persistence 2.0
Java Persistence 2.0Java Persistence 2.0
Java Persistence 2.0gedoplan
 
MongoDB für Java-Programmierer
MongoDB für Java-ProgrammiererMongoDB für Java-Programmierer
MongoDB für Java-ProgrammiererUwe Printz
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJSSebastian Springer
 
MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)Uwe Printz
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for BeginnersUlrich Krause
 

Semelhante a Überblick zu EF7 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015 (20)

Connecting Android - Externe Hardware mit dem grünen Roboter verbinden
Connecting Android - Externe Hardware mit dem grünen Roboter verbindenConnecting Android - Externe Hardware mit dem grünen Roboter verbinden
Connecting Android - Externe Hardware mit dem grünen Roboter verbinden
 
Was ist neu in .NET 4.5?
Was ist neu in .NET 4.5?Was ist neu in .NET 4.5?
Was ist neu in .NET 4.5?
 
.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
 
Dynamische Webprogrammierung mit der GoogleMaps API
Dynamische Webprogrammierung mit der GoogleMaps APIDynamische Webprogrammierung mit der GoogleMaps API
Dynamische Webprogrammierung mit der GoogleMaps API
 
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJSWebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
WebGL - 3D im Browser - Erfahrungsbericht mit BabylonJS
 
Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?
 
Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?
 
Citrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-Strategie
Citrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-StrategieCitrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-Strategie
Citrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-Strategie
 
.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
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Open icf (open identity connector framework) @ forgerock deutsch
Open icf (open identity connector framework) @ forgerock   deutschOpen icf (open identity connector framework) @ forgerock   deutsch
Open icf (open identity connector framework) @ forgerock deutsch
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 
digitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
digitalSTROM Developer Day 2011: digitalSTROM-Server-AppsdigitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
digitalSTROM Developer Day 2011: digitalSTROM-Server-Apps
 
Java Persistence 2.0
Java Persistence 2.0Java Persistence 2.0
Java Persistence 2.0
 
MongoDB für Java-Programmierer
MongoDB für Java-ProgrammiererMongoDB für Java-Programmierer
MongoDB für Java-Programmierer
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJS
 
MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 

Mais de Manfred Steyer

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 2Manfred Steyer
 
Datenbindung und Performance in Angular 2
Datenbindung und Performance in Angular 2Datenbindung und Performance in Angular 2
Datenbindung und Performance in Angular 2Manfred Steyer
 
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/storeManfred Steyer
 
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 2Manfred Steyer
 
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 betrachtetManfred Steyer
 
Datengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkDatengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkManfred Steyer
 
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.0Manfred Steyer
 
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 1Manfred Steyer
 
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")Manfred Steyer
 
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 2Manfred Steyer
 
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 ConnectManfred Steyer
 
Progressive web apps with Angular 2
Progressive web apps with Angular 2Progressive web apps with Angular 2
Progressive web apps with Angular 2Manfred Steyer
 
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 2Manfred Steyer
 
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-DevsManfred Steyer
 
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 changesManfred Steyer
 
Angular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 LondonAngular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 LondonManfred Steyer
 
Angular 2 - SSD 2016 London
Angular 2 - SSD 2016 LondonAngular 2 - SSD 2016 London
Angular 2 - SSD 2016 LondonManfred Steyer
 
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 LondonManfred Steyer
 

Mais de 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
 
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
 
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?
 

Überblick zu EF7 auf DevCon der Fox-Pro-Usergroup in Frankfurt, Nov 2015