SlideShare ist ein Scribd-Unternehmen logo
1 von 36
.NET Datenzugriff einfach
und performant mit Micro
O/R Mappern
André Krämer
Softwareentwickler, Trainer, Berater
Wer nutzt einen O/R Mapper?
Wer glaubt, dass sein O/R
Mapper zu langsam ist?
Wer nutzt …
• Entity Framework
• NHibernate
• Telerik Data Access
• LLBLGEN Pro
• DataSets
• DataReader
• Dapper
• NPOCO
• PetaPoco
• ORMLite
Was machen wir eigentlich den
ganzen Tag?
Customer
Order OrderItem
Product
orders*
0…*
1
Name Street City Date
Customer Orders Id
OrderItem
City Price Shipped
Relation-
ship
Relation-
ship
30 % der Arbeitszeit sind verloren
• ?
?
Datenzugriffsalternativen
Für das .NET Framework
DataReader (.NET 1.0 Style)
using (connection)
{
SqlCommand command =
new SqlCommand( "SELECT CategoryID, CategoryName FROM Categories;",
connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
Console.WriteLine("{0}t{1}", reader.GetInt32(0), reader.GetString(1));
}
}
else
{
Console.WriteLine("No rows found.");
}
reader.Close();
}
„if you’re writing ADO.Net code by hand, you’re
stealing from your employer or client.”
Jeremy D. Miller, 7. November 2008, http://codebetter.com/jeremymiller/2008/11/07/how-to-design-your-data-
connectivity-strategy/
(Typed) Datasets (.NET 1.1 Style)
Bewertung von Typed Datasets
• Schlechte Performance
• Hoher Speicherverbrauch
• Nur bedingt Interoperabel
• …
Linq2Sql
Bewertung Linq2Sql
•  Funktioniert nur mit SQL Server
•  Wird nicht mehr weiter entwickelt
•  Wird von MS nicht empfohlen
ORMs (Entity Framework)
NHibernate
OR-Mapper
• Unterstützen verschiedene Entwicklungsmodelle (DB First, Code
First, …)
• „Schützen(?)“ uns davor SQL schreiben zu müssen
• Abstrahieren die Datenbank für uns
• Entwickler müssen nichts mehr über die DB wissen
• Können Daten bei Bedarf (Lazy) laden
• Machen das Leben leichter… (?)
Seit ich O/R Mapper nutze
muss ich mehr über die DB
wissen, als je zuvor
Überraschungsfeatures von O/R Mappern
• Lazy Loading
• Deffered Execution
• Abfragen über mehrere Ebenen werden schnell komplex
• …
Weitere Alternative
Micro O/R Mapper
Was sind Micro OR Mapper
• Einfache Hilfsbibliotheken
• Weniger ist mehr
• In der Regel sehr SQL-lastig
• Auf Performance ausgerichtet
Bekannte Micro OR Mapper
• Dapper von Sam Saffron
• Massive von Rob Connery
• Peta Poco von Top Ten Software
Dapper
• Sam Saffron / Stack Overflow
• Open Source
• Eine Assembly
• Ultraschnell
• Optimiert auf lesende Zugriffe
• Pures SQL
Demo
Dapper
28
PetaPoco
• Topten Software
• Kann mit Pocos und Dynamics umgehen
• Inspiriert von Massive und SubSonic
• Code Generierung durch T4 Templates
• Pures SQL oder Hilfsfunktionen über Attribute
Demo
PetaPoco
30
Was Micro O/R Mapper Ihnen nicht bieten
• Hohe Abstraktion
• Lazy Loading
• Change Tracking
• Datenbankunabhängigkeit
Wann machen Micro O/R Mapper Sinn?
• Wenn Sie bzw. Ihr Team sehr nah an der Datenbank arbeitet
• Wenn Sie möglichst viel Kontrolle haben möchten
• Wenn Ihnen OR Mapper schon immer suspekt waren
• Wenn Sie eine bestehende Lösung refactoren
• Wenn Sie Angst vor Ihrem DBA haben 
Fazit
• Folgen Sie nicht blind jedem Trend und jedem Experten!
• Überlegen Sie kritisch, wann welche Datenzugriffstechnologie Sinn
macht
• One Size Fits All trifft nur selten auf die Software Entwicklung zu
• Micro O/R Mapper können zusätzlich zu echten O/R Mappern
genutzt werden
• Profilen Sie ihre Anwendung, finden Sie Performanceengpässe und
setzen Sie gezielt Micro O/R Mapper ein
Homepage
andre@andrekraemer.de | http://andrekraemer.de | http://andrekraemer.de/blog | http://github.com/AndreKraemer
Vielen Dank!
Blog
Xing
Facebook
Twitter
Google+
34
Meine Dienstleistungen
• Schulungen
• ASP.NET / AngularJS
• Xamarin
• TX Text Control
• Infragistics NetAdvantage
• Team Foundation Server
• .NET Datenzugriff (Entity Framework, NHibernate, Micro O/R Mapper)
• Consulting
• Durchführung von Technologieworkshops
• Code- / Architekturreviews
• Analyse von managed Memory Leaks
• Prototypenentwicklung
• Remote Entwickler-Support
• Projektbegleitendes Coaching
• Softwareentwicklung
• Mobile Apps (Windows 10, Windows 8, Windows Phone, Android, iOS)
• Entwicklung von Web-Anwendungen mit ASP.NET und AngularJS
35andre@andrekraemer.de | http://andrekraemer.de | http://andrekraemer.de/blog | http://github.com/AndreKraemer
.NET Performance Clinic.
Kostenlose Performance Sprechstunde
3 Performance-Probleme die Sie in Ihrem Code haben könnten
Mittwoch, 17. Juni 2015
13:15 – 13:45
Kurzpräsentation/Demo,
gefolgt von einer Q&A Runde

Weitere ähnliche Inhalte

Andere mochten auch

Módulo 3 "Programa Desafío" de Telefónica: Innovación
Módulo 3 "Programa Desafío" de Telefónica: InnovaciónMódulo 3 "Programa Desafío" de Telefónica: Innovación
Módulo 3 "Programa Desafío" de Telefónica: InnovaciónDaniel Collico Savio
 
Bibliotheken @ Google
Bibliotheken @ GoogleBibliotheken @ Google
Bibliotheken @ GoogleInga Overkamp
 
Lernende Energieeffizienz-Netzwerke auf dem Weg zu 100 und mehr Netzwerken
Lernende Energieeffizienz-Netzwerke auf dem Weg zu 100 und mehr NetzwerkenLernende Energieeffizienz-Netzwerke auf dem Weg zu 100 und mehr Netzwerken
Lernende Energieeffizienz-Netzwerke auf dem Weg zu 100 und mehr NetzwerkenUlla Herbst
 
Lernen am Arbeitsplatz - Kontext Diversität
Lernen am Arbeitsplatz - Kontext DiversitätLernen am Arbeitsplatz - Kontext Diversität
Lernen am Arbeitsplatz - Kontext DiversitätVereinAuxilium
 
DOAG 2014 - Enterprise User Security Von der Business Rolle bis in die Datenbank
DOAG 2014 - Enterprise User Security Von der Business Rolle bis in die DatenbankDOAG 2014 - Enterprise User Security Von der Business Rolle bis in die Datenbank
DOAG 2014 - Enterprise User Security Von der Business Rolle bis in die DatenbankMarcel Pils
 
Wie sie versteckte seo keywords wieder enthüllen
Wie sie versteckte seo keywords wieder enthüllenWie sie versteckte seo keywords wieder enthüllen
Wie sie versteckte seo keywords wieder enthüllensemrush_webinars
 
Seminarios Dic 2007
Seminarios Dic 2007Seminarios Dic 2007
Seminarios Dic 2007guest736729
 
CADFEM - Systemhaus für Simulationssoftware, Seminare & Ingenieurdienstleistu...
CADFEM - Systemhaus für Simulationssoftware, Seminare & Ingenieurdienstleistu...CADFEM - Systemhaus für Simulationssoftware, Seminare & Ingenieurdienstleistu...
CADFEM - Systemhaus für Simulationssoftware, Seminare & Ingenieurdienstleistu...CADFEM Austria GmbH
 
FIRST Kitzbühel Immobilien - Exklusive Immobilien in Kitzbühel in Tirol
FIRST Kitzbühel Immobilien - Exklusive Immobilien in Kitzbühel in TirolFIRST Kitzbühel Immobilien - Exklusive Immobilien in Kitzbühel in Tirol
FIRST Kitzbühel Immobilien - Exklusive Immobilien in Kitzbühel in TirolFIRST Kitzbühel Immobilien
 
In den kopf schauen
In den kopf schauenIn den kopf schauen
In den kopf schauenkiwide
 
Forschungsdatenmanagement an der Humboldt-Universität zu Berlin
Forschungsdatenmanagement an der Humboldt-Universität zu BerlinForschungsdatenmanagement an der Humboldt-Universität zu Berlin
Forschungsdatenmanagement an der Humboldt-Universität zu BerlinElena Simukovic
 
Gabriel Rath: Social Media als Chance für Unternehmer.
Gabriel Rath: Social Media als Chance für Unternehmer. Gabriel Rath: Social Media als Chance für Unternehmer.
Gabriel Rath: Social Media als Chance für Unternehmer. orbit_crossmedia
 
F E L I Z N A V I D A D
F E L I Z  N A V I D A DF E L I Z  N A V I D A D
F E L I Z N A V I D A Djuan_j_condolo
 

Andere mochten auch (18)

Módulo 3 "Programa Desafío" de Telefónica: Innovación
Módulo 3 "Programa Desafío" de Telefónica: InnovaciónMódulo 3 "Programa Desafío" de Telefónica: Innovación
Módulo 3 "Programa Desafío" de Telefónica: Innovación
 
Bibliotheken @ Google
Bibliotheken @ GoogleBibliotheken @ Google
Bibliotheken @ Google
 
Pertemuan 9 - Wireless
Pertemuan 9 - WirelessPertemuan 9 - Wireless
Pertemuan 9 - Wireless
 
Lernende Energieeffizienz-Netzwerke auf dem Weg zu 100 und mehr Netzwerken
Lernende Energieeffizienz-Netzwerke auf dem Weg zu 100 und mehr NetzwerkenLernende Energieeffizienz-Netzwerke auf dem Weg zu 100 und mehr Netzwerken
Lernende Energieeffizienz-Netzwerke auf dem Weg zu 100 und mehr Netzwerken
 
Lernen am Arbeitsplatz - Kontext Diversität
Lernen am Arbeitsplatz - Kontext DiversitätLernen am Arbeitsplatz - Kontext Diversität
Lernen am Arbeitsplatz - Kontext Diversität
 
DOAG 2014 - Enterprise User Security Von der Business Rolle bis in die Datenbank
DOAG 2014 - Enterprise User Security Von der Business Rolle bis in die DatenbankDOAG 2014 - Enterprise User Security Von der Business Rolle bis in die Datenbank
DOAG 2014 - Enterprise User Security Von der Business Rolle bis in die Datenbank
 
KWG Geschäftsbericht 2010
KWG Geschäftsbericht 2010KWG Geschäftsbericht 2010
KWG Geschäftsbericht 2010
 
Wie sie versteckte seo keywords wieder enthüllen
Wie sie versteckte seo keywords wieder enthüllenWie sie versteckte seo keywords wieder enthüllen
Wie sie versteckte seo keywords wieder enthüllen
 
Seminarios Dic 2007
Seminarios Dic 2007Seminarios Dic 2007
Seminarios Dic 2007
 
CADFEM - Systemhaus für Simulationssoftware, Seminare & Ingenieurdienstleistu...
CADFEM - Systemhaus für Simulationssoftware, Seminare & Ingenieurdienstleistu...CADFEM - Systemhaus für Simulationssoftware, Seminare & Ingenieurdienstleistu...
CADFEM - Systemhaus für Simulationssoftware, Seminare & Ingenieurdienstleistu...
 
Testppt
TestpptTestppt
Testppt
 
FIRST Kitzbühel Immobilien - Exklusive Immobilien in Kitzbühel in Tirol
FIRST Kitzbühel Immobilien - Exklusive Immobilien in Kitzbühel in TirolFIRST Kitzbühel Immobilien - Exklusive Immobilien in Kitzbühel in Tirol
FIRST Kitzbühel Immobilien - Exklusive Immobilien in Kitzbühel in Tirol
 
KWG Geschäftsbericht 2004 & 2005
KWG Geschäftsbericht 2004 & 2005KWG Geschäftsbericht 2004 & 2005
KWG Geschäftsbericht 2004 & 2005
 
In den kopf schauen
In den kopf schauenIn den kopf schauen
In den kopf schauen
 
Forschungsdatenmanagement an der Humboldt-Universität zu Berlin
Forschungsdatenmanagement an der Humboldt-Universität zu BerlinForschungsdatenmanagement an der Humboldt-Universität zu Berlin
Forschungsdatenmanagement an der Humboldt-Universität zu Berlin
 
Gabriel Rath: Social Media als Chance für Unternehmer.
Gabriel Rath: Social Media als Chance für Unternehmer. Gabriel Rath: Social Media als Chance für Unternehmer.
Gabriel Rath: Social Media als Chance für Unternehmer.
 
Mercerdes benz
Mercerdes benzMercerdes benz
Mercerdes benz
 
F E L I Z N A V I D A D
F E L I Z  N A V I D A DF E L I Z  N A V I D A D
F E L I Z N A V I D A D
 

Ähnlich wie .NET Datenzugriff einfach und performant mit Micro O/R Mappern

Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und HadoopRealtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und HadoopValentin Zacharias
 
Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2panagenda
 
Überblick zum DFG-Projekt OCR-D
Überblick zum DFG-Projekt OCR-DÜberblick zum DFG-Projekt OCR-D
Überblick zum DFG-Projekt OCR-Dcneudecker
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftDavid Schneider
 
1. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.20231. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.2023Johannes Kleinlercher
 
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?KurtStockinger
 
Avoid Network-Issues and Polling
Avoid Network-Issues and PollingAvoid Network-Issues and Polling
Avoid Network-Issues and PollingKai Donato
 
Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16
Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16
Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16Boris Adryan
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatengeKarin Patenge
 
Big/Smart/Fast Data – a very compact overview
Big/Smart/Fast Data – a very compact overviewBig/Smart/Fast Data – a very compact overview
Big/Smart/Fast Data – a very compact overviewOMM Solutions GmbH
 
AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?
AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?
AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?panagenda
 
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareAndreas Schreiber
 
Koordination innerhalb großer APEX Projekte
Koordination innerhalb großer APEX ProjekteKoordination innerhalb großer APEX Projekte
Koordination innerhalb großer APEX ProjekteOliver Lemm
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafkagedoplan
 
Python Installationen für Data Science
Python Installationen für Data SciencePython Installationen für Data Science
Python Installationen für Data ScienceDatamics
 
TechTalkThursday 26.11.2015: Zentrales Metriken-System - ist der Flügelschlag...
TechTalkThursday 26.11.2015: Zentrales Metriken-System - ist der Flügelschlag...TechTalkThursday 26.11.2015: Zentrales Metriken-System - ist der Flügelschlag...
TechTalkThursday 26.11.2015: Zentrales Metriken-System - ist der Flügelschlag...nine
 
TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...
TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...
TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...Benjamin Kuster
 
Django trifft Flutter
Django trifft FlutterDjango trifft Flutter
Django trifft Flutterroskakori
 
Verteilte Software-Systeme im Kontext von Industrie 4.0
Verteilte Software-Systeme im Kontext von Industrie 4.0Verteilte Software-Systeme im Kontext von Industrie 4.0
Verteilte Software-Systeme im Kontext von Industrie 4.0Peter Tröger
 

Ähnlich wie .NET Datenzugriff einfach und performant mit Micro O/R Mappern (20)

Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und HadoopRealtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
 
Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2
 
Überblick zum DFG-Projekt OCR-D
Überblick zum DFG-Projekt OCR-DÜberblick zum DFG-Projekt OCR-D
Überblick zum DFG-Projekt OCR-D
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
 
1. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.20231. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.2023
 
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
 
Avoid Network-Issues and Polling
Avoid Network-Issues and PollingAvoid Network-Issues and Polling
Avoid Network-Issues and Polling
 
Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16
Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16
Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16
 
InfraCoders I
InfraCoders IInfraCoders I
InfraCoders I
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge
 
Big/Smart/Fast Data – a very compact overview
Big/Smart/Fast Data – a very compact overviewBig/Smart/Fast Data – a very compact overview
Big/Smart/Fast Data – a very compact overview
 
AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?
AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?
AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?
 
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
 
Koordination innerhalb großer APEX Projekte
Koordination innerhalb großer APEX ProjekteKoordination innerhalb großer APEX Projekte
Koordination innerhalb großer APEX Projekte
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
 
Python Installationen für Data Science
Python Installationen für Data SciencePython Installationen für Data Science
Python Installationen für Data Science
 
TechTalkThursday 26.11.2015: Zentrales Metriken-System - ist der Flügelschlag...
TechTalkThursday 26.11.2015: Zentrales Metriken-System - ist der Flügelschlag...TechTalkThursday 26.11.2015: Zentrales Metriken-System - ist der Flügelschlag...
TechTalkThursday 26.11.2015: Zentrales Metriken-System - ist der Flügelschlag...
 
TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...
TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...
TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...
 
Django trifft Flutter
Django trifft FlutterDjango trifft Flutter
Django trifft Flutter
 
Verteilte Software-Systeme im Kontext von Industrie 4.0
Verteilte Software-Systeme im Kontext von Industrie 4.0Verteilte Software-Systeme im Kontext von Industrie 4.0
Verteilte Software-Systeme im Kontext von Industrie 4.0
 

Mehr von André Krämer

Xamarin.Forms App in einer Stunde
Xamarin.Forms App in einer StundeXamarin.Forms App in einer Stunde
Xamarin.Forms App in einer StundeAndré Krämer
 
Entwicklung von ASP.NET-Core- und SQL-Server-Anwendungen unter macOS in der P...
Entwicklung von ASP.NET-Core- und SQL-Server-Anwendungen unter macOS in der P...Entwicklung von ASP.NET-Core- und SQL-Server-Anwendungen unter macOS in der P...
Entwicklung von ASP.NET-Core- und SQL-Server-Anwendungen unter macOS in der P...André Krämer
 
Codewiederverwendung in Xamarin-Apps maximieren
Codewiederverwendung in Xamarin-Apps maximierenCodewiederverwendung in Xamarin-Apps maximieren
Codewiederverwendung in Xamarin-Apps maximierenAndré Krämer
 
Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018André Krämer
 
Xamarin.Forms Workshop, DDC 2018
Xamarin.Forms Workshop, DDC 2018Xamarin.Forms Workshop, DDC 2018
Xamarin.Forms Workshop, DDC 2018André Krämer
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndré Krämer
 
Xamarin ohne Mac und Android SDK? - So weit kommen Sie mit dem Xamarin Live P...
Xamarin ohne Mac und Android SDK?- So weit kommen Sie mit dem Xamarin Live P...Xamarin ohne Mac und Android SDK?- So weit kommen Sie mit dem Xamarin Live P...
Xamarin ohne Mac und Android SDK? - So weit kommen Sie mit dem Xamarin Live P...André Krämer
 
Typische Sicherheitslücken in ASP.NET MVC und Web API Anwendungen
Typische Sicherheitslücken in ASP.NET MVC und Web API AnwendungenTypische Sicherheitslücken in ASP.NET MVC und Web API Anwendungen
Typische Sicherheitslücken in ASP.NET MVC und Web API AnwendungenAndré Krämer
 
Lokale Datenhaltung in Xamarin-Apps
Lokale Datenhaltung in Xamarin-AppsLokale Datenhaltung in Xamarin-Apps
Lokale Datenhaltung in Xamarin-AppsAndré Krämer
 
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)André Krämer
 
Entity Framework hinter den Kulissen
Entity Framework hinter den KulissenEntity Framework hinter den Kulissen
Entity Framework hinter den KulissenAndré Krämer
 
Performance trotz Entity Framwork
Performance trotz Entity FramworkPerformance trotz Entity Framwork
Performance trotz Entity FramworkAndré Krämer
 
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)André Krämer
 

Mehr von André Krämer (13)

Xamarin.Forms App in einer Stunde
Xamarin.Forms App in einer StundeXamarin.Forms App in einer Stunde
Xamarin.Forms App in einer Stunde
 
Entwicklung von ASP.NET-Core- und SQL-Server-Anwendungen unter macOS in der P...
Entwicklung von ASP.NET-Core- und SQL-Server-Anwendungen unter macOS in der P...Entwicklung von ASP.NET-Core- und SQL-Server-Anwendungen unter macOS in der P...
Entwicklung von ASP.NET-Core- und SQL-Server-Anwendungen unter macOS in der P...
 
Codewiederverwendung in Xamarin-Apps maximieren
Codewiederverwendung in Xamarin-Apps maximierenCodewiederverwendung in Xamarin-Apps maximieren
Codewiederverwendung in Xamarin-Apps maximieren
 
Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018
 
Xamarin.Forms Workshop, DDC 2018
Xamarin.Forms Workshop, DDC 2018Xamarin.Forms Workshop, DDC 2018
Xamarin.Forms Workshop, DDC 2018
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickeln
 
Xamarin ohne Mac und Android SDK? - So weit kommen Sie mit dem Xamarin Live P...
Xamarin ohne Mac und Android SDK?- So weit kommen Sie mit dem Xamarin Live P...Xamarin ohne Mac und Android SDK?- So weit kommen Sie mit dem Xamarin Live P...
Xamarin ohne Mac und Android SDK? - So weit kommen Sie mit dem Xamarin Live P...
 
Typische Sicherheitslücken in ASP.NET MVC und Web API Anwendungen
Typische Sicherheitslücken in ASP.NET MVC und Web API AnwendungenTypische Sicherheitslücken in ASP.NET MVC und Web API Anwendungen
Typische Sicherheitslücken in ASP.NET MVC und Web API Anwendungen
 
Lokale Datenhaltung in Xamarin-Apps
Lokale Datenhaltung in Xamarin-AppsLokale Datenhaltung in Xamarin-Apps
Lokale Datenhaltung in Xamarin-Apps
 
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
 
Entity Framework hinter den Kulissen
Entity Framework hinter den KulissenEntity Framework hinter den Kulissen
Entity Framework hinter den Kulissen
 
Performance trotz Entity Framwork
Performance trotz Entity FramworkPerformance trotz Entity Framwork
Performance trotz Entity Framwork
 
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
 

.NET Datenzugriff einfach und performant mit Micro O/R Mappern

  • 1. .NET Datenzugriff einfach und performant mit Micro O/R Mappern André Krämer Softwareentwickler, Trainer, Berater
  • 2.
  • 3. Wer nutzt einen O/R Mapper?
  • 4. Wer glaubt, dass sein O/R Mapper zu langsam ist?
  • 5. Wer nutzt … • Entity Framework • NHibernate • Telerik Data Access • LLBLGEN Pro • DataSets • DataReader • Dapper • NPOCO • PetaPoco • ORMLite
  • 6. Was machen wir eigentlich den ganzen Tag?
  • 8. Name Street City Date Customer Orders Id OrderItem City Price Shipped Relation- ship Relation- ship
  • 9. 30 % der Arbeitszeit sind verloren
  • 12. DataReader (.NET 1.0 Style) using (connection) { SqlCommand command = new SqlCommand( "SELECT CategoryID, CategoryName FROM Categories;", connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { Console.WriteLine("{0}t{1}", reader.GetInt32(0), reader.GetString(1)); } } else { Console.WriteLine("No rows found."); } reader.Close(); }
  • 13. „if you’re writing ADO.Net code by hand, you’re stealing from your employer or client.” Jeremy D. Miller, 7. November 2008, http://codebetter.com/jeremymiller/2008/11/07/how-to-design-your-data- connectivity-strategy/
  • 15. Bewertung von Typed Datasets • Schlechte Performance • Hoher Speicherverbrauch • Nur bedingt Interoperabel • …
  • 17. Bewertung Linq2Sql •  Funktioniert nur mit SQL Server •  Wird nicht mehr weiter entwickelt •  Wird von MS nicht empfohlen
  • 20.
  • 21. OR-Mapper • Unterstützen verschiedene Entwicklungsmodelle (DB First, Code First, …) • „Schützen(?)“ uns davor SQL schreiben zu müssen • Abstrahieren die Datenbank für uns • Entwickler müssen nichts mehr über die DB wissen • Können Daten bei Bedarf (Lazy) laden • Machen das Leben leichter… (?)
  • 22. Seit ich O/R Mapper nutze muss ich mehr über die DB wissen, als je zuvor
  • 23. Überraschungsfeatures von O/R Mappern • Lazy Loading • Deffered Execution • Abfragen über mehrere Ebenen werden schnell komplex • …
  • 25. Was sind Micro OR Mapper • Einfache Hilfsbibliotheken • Weniger ist mehr • In der Regel sehr SQL-lastig • Auf Performance ausgerichtet
  • 26. Bekannte Micro OR Mapper • Dapper von Sam Saffron • Massive von Rob Connery • Peta Poco von Top Ten Software
  • 27. Dapper • Sam Saffron / Stack Overflow • Open Source • Eine Assembly • Ultraschnell • Optimiert auf lesende Zugriffe • Pures SQL
  • 29. PetaPoco • Topten Software • Kann mit Pocos und Dynamics umgehen • Inspiriert von Massive und SubSonic • Code Generierung durch T4 Templates • Pures SQL oder Hilfsfunktionen über Attribute
  • 31. Was Micro O/R Mapper Ihnen nicht bieten • Hohe Abstraktion • Lazy Loading • Change Tracking • Datenbankunabhängigkeit
  • 32. Wann machen Micro O/R Mapper Sinn? • Wenn Sie bzw. Ihr Team sehr nah an der Datenbank arbeitet • Wenn Sie möglichst viel Kontrolle haben möchten • Wenn Ihnen OR Mapper schon immer suspekt waren • Wenn Sie eine bestehende Lösung refactoren • Wenn Sie Angst vor Ihrem DBA haben 
  • 33. Fazit • Folgen Sie nicht blind jedem Trend und jedem Experten! • Überlegen Sie kritisch, wann welche Datenzugriffstechnologie Sinn macht • One Size Fits All trifft nur selten auf die Software Entwicklung zu • Micro O/R Mapper können zusätzlich zu echten O/R Mappern genutzt werden • Profilen Sie ihre Anwendung, finden Sie Performanceengpässe und setzen Sie gezielt Micro O/R Mapper ein
  • 34. Homepage andre@andrekraemer.de | http://andrekraemer.de | http://andrekraemer.de/blog | http://github.com/AndreKraemer Vielen Dank! Blog Xing Facebook Twitter Google+ 34
  • 35. Meine Dienstleistungen • Schulungen • ASP.NET / AngularJS • Xamarin • TX Text Control • Infragistics NetAdvantage • Team Foundation Server • .NET Datenzugriff (Entity Framework, NHibernate, Micro O/R Mapper) • Consulting • Durchführung von Technologieworkshops • Code- / Architekturreviews • Analyse von managed Memory Leaks • Prototypenentwicklung • Remote Entwickler-Support • Projektbegleitendes Coaching • Softwareentwicklung • Mobile Apps (Windows 10, Windows 8, Windows Phone, Android, iOS) • Entwicklung von Web-Anwendungen mit ASP.NET und AngularJS 35andre@andrekraemer.de | http://andrekraemer.de | http://andrekraemer.de/blog | http://github.com/AndreKraemer
  • 36. .NET Performance Clinic. Kostenlose Performance Sprechstunde 3 Performance-Probleme die Sie in Ihrem Code haben könnten Mittwoch, 17. Juni 2015 13:15 – 13:45 Kurzpräsentation/Demo, gefolgt von einer Q&A Runde

Hinweis der Redaktion

  1. Demo Source Code: https://github.com/AndreKraemer/MicroORMSample
  2. Selbständiger Softwareentwickler, Trainer und Berater Partner im IT-Visions Expertennetzwerk Microsoft MVP, TX Text Control MVP und Video Trainer bei video2brain
  3. Redgate .NET Performance Clinic. Kostenlose Sprechstunde