.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
•...
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 FRO...
„if you’re writing ADO.Net code by hand, you’re
stealing from your employer or client.”
Jeremy D. Miller, 7. November 2008...
(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 empfohl...
ORMs (Entity Framework)
NHibernate
OR-Mapper
• Unterstützen verschiedene Entwicklungsmodelle (DB First, Code
First, …)
• „Schützen(?)“ uns davor SQL schreibe...
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 ko...
Weitere Alternative
Micro O/R Mapper
Was sind Micro OR Mapper
• Einfache Hilfsbibliotheken
• Weniger ist mehr
• In der Regel sehr SQL-lastig
• Auf Performance ...
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
• Pure...
Demo
Dapper
28
PetaPoco
• Topten Software
• Kann mit Pocos und Dynamics umgehen
• Inspiriert von Massive und SubSonic
• Code Generierung ...
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 K...
Fazit
• Folgen Sie nicht blind jedem Trend und jedem Experten!
• Überlegen Sie kritisch, wann welche Datenzugriffstechnolo...
Homepage
andre@andrekraemer.de | http://andrekraemer.de | http://andrekraemer.de/blog | http://github.com/AndreKraemer
Vie...
Meine Dienstleistungen
• Schulungen
• ASP.NET / AngularJS
• Xamarin
• TX Text Control
• Infragistics NetAdvantage
• Team F...
.NET Performance Clinic.
Kostenlose Performance Sprechstunde
3 Performance-Probleme die Sie in Ihrem Code haben könnten
Mi...
.NET Datenzugriff einfach und performant mit Micro O/R Mappern
.NET Datenzugriff einfach und performant mit Micro O/R Mappern
Nächste SlideShare
Wird geladen in …5
×

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

424 Aufrufe

Veröffentlicht am

O/R Mapper, wie Microsofts Entity Framework oder NHibernate, haben enorm dazu beigetragen, den Datenzugriff in .NET-Applikationen für Entwickler zu vereinfachen. Ein wenig Linq genügt und schon "fliegen" die Daten aus der Datenbank in die Objekte im Quellcode. Doch was im Quellcode noch gut aussieht, lässt den Datenbankadministrator schaudern, sobald er einen Blick auf das automatisch generierte SQL-Statement wirft. All zu leicht schleichen sich nämlich Fehler ein, die zu unperformanten SQL-Statements führen. Und das alles nur, um Daten in Objekte zu packen. In dieser Session erfahren Sie, dass es auch anders geht. Mit dem Einsatz so genannter Micro ORMs, wie NPoco, haben Sie die Möglichkeit, hoch optimierte SQL-Statements gegen Ihre Datenbank abzufeuern und das Ergebnis automatisch in POCO-Klassen zu packen. Natürlich verlieren Sie dabei auch einige Features der "großen" ORMs. Welche das sind und ob Sie diese wirklich brauchen, zeige ich Ihnen in diesem Vortrag.

Veröffentlicht in: Software
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
424
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
44
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • Demo Source Code: https://github.com/AndreKraemer/MicroORMSample
  • Selbständiger Softwareentwickler, Trainer und Berater
    Partner im IT-Visions Expertennetzwerk
    Microsoft MVP, TX Text Control MVP und Video Trainer bei video2brain
  • Redgate .NET Performance Clinic. Kostenlose Sprechstunde
  • .NET Datenzugriff einfach und performant mit Micro O/R Mappern

    1. 1. .NET Datenzugriff einfach und performant mit Micro O/R Mappern André Krämer Softwareentwickler, Trainer, Berater
    2. 2. Wer nutzt einen O/R Mapper?
    3. 3. Wer glaubt, dass sein O/R Mapper zu langsam ist?
    4. 4. Wer nutzt … • Entity Framework • NHibernate • Telerik Data Access • LLBLGEN Pro • DataSets • DataReader • Dapper • NPOCO • PetaPoco • ORMLite
    5. 5. Was machen wir eigentlich den ganzen Tag?
    6. 6. Customer Order OrderItem Product orders* 0…* 1
    7. 7. Name Street City Date Customer Orders Id OrderItem City Price Shipped Relation- ship Relation- ship
    8. 8. 30 % der Arbeitszeit sind verloren
    9. 9. • ? ?
    10. 10. Datenzugriffsalternativen Für das .NET Framework
    11. 11. 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(); }
    12. 12. „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/
    13. 13. (Typed) Datasets (.NET 1.1 Style)
    14. 14. Bewertung von Typed Datasets • Schlechte Performance • Hoher Speicherverbrauch • Nur bedingt Interoperabel • …
    15. 15. Linq2Sql
    16. 16. Bewertung Linq2Sql •  Funktioniert nur mit SQL Server •  Wird nicht mehr weiter entwickelt •  Wird von MS nicht empfohlen
    17. 17. ORMs (Entity Framework)
    18. 18. NHibernate
    19. 19. 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… (?)
    20. 20. Seit ich O/R Mapper nutze muss ich mehr über die DB wissen, als je zuvor
    21. 21. Überraschungsfeatures von O/R Mappern • Lazy Loading • Deffered Execution • Abfragen über mehrere Ebenen werden schnell komplex • …
    22. 22. Weitere Alternative Micro O/R Mapper
    23. 23. Was sind Micro OR Mapper • Einfache Hilfsbibliotheken • Weniger ist mehr • In der Regel sehr SQL-lastig • Auf Performance ausgerichtet
    24. 24. Bekannte Micro OR Mapper • Dapper von Sam Saffron • Massive von Rob Connery • Peta Poco von Top Ten Software
    25. 25. Dapper • Sam Saffron / Stack Overflow • Open Source • Eine Assembly • Ultraschnell • Optimiert auf lesende Zugriffe • Pures SQL
    26. 26. Demo Dapper 28
    27. 27. 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
    28. 28. Demo PetaPoco 30
    29. 29. Was Micro O/R Mapper Ihnen nicht bieten • Hohe Abstraktion • Lazy Loading • Change Tracking • Datenbankunabhängigkeit
    30. 30. 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 
    31. 31. 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
    32. 32. Homepage andre@andrekraemer.de | http://andrekraemer.de | http://andrekraemer.de/blog | http://github.com/AndreKraemer Vielen Dank! Blog Xing Facebook Twitter Google+ 34
    33. 33. 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
    34. 34. .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

    ×