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.
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/
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
• …
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
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
Selbständiger Softwareentwickler, Trainer und Berater
Partner im IT-Visions Expertennetzwerk
Microsoft MVP, TX Text Control MVP und Video Trainer bei video2brain