object relational mapping a to z. about me over a decade of i.t. experience web developer, dba,...
TRANSCRIPT
Object Relational Mapping A to Z
About Me
Over A Decade of I.T. Experience
Web Developer,DBA, DevOps, Mobile
Microsoft Cert.in SQL Server
Twitter: @greeleygeekE-Mail: [email protected]
Summary
• What an Object Relational Mapper Is
• Why you might use an Object Relational Mapper
• Problems using Object Relational Mapper
• Solutions to common issues
• Popular Object Relational Mapper examples
• Debugging
• Final Tips
What Is It?
• Wikipedia: …”technique for converting data between incompatible type systems in object-oriented programming languages. This creates, in effect, a ‘virtual object database’ that can be used from within the programming language”
• “Maps” set based data to objects useable by Object Oriented languages.
What Is An ORM
What is An ORM?
© Universal Studios. All rights Reserved.
What Is An ORM?
• Database Management Systems: ~1960
• Object Oriented Programming: ~50s/60s
• One of the first ORMs was TopLink for SmallTalk in 1994
Popular Flavors
What Is An ORM?
Object Impedance Mismatch
Wikipedia defines this as: “…conceptual and technical difficulties that are often encountered when a relational database management system (RDBMS) is being used by a program written in an object-oriented programming language or style; particularly when objects or class definitions are mapped in a straightforward way to database tables or relational schemata.”
The “ORM problem”
http://upload.wikimedia.org/wikipedia/commons/7/76/Bruce_Crandall%27s_UH-1D.jpg
Solutions
• Abandon the Object Model altogether returning to traditional methods
• Use a storage method that is object oriented itself (OODBMS, NoSQL possibly)
• Hand-crafting each Mapping
• Mix of ORM and SQL
• Integrate datasets into language itself (think LINQ)
• Build solution on relational concepts (blocks of data)
The Good News
Taking A Peek
NHibernate Demo
NHibernate Demo
NHibernate Demo
NHibernate Demo
NHibernate
NHibernate Demo
NHibernate Demo
Nhibernate Demo
NHibernate Demo
Taking A Peek
Entity Framework
Entity Framework
Entity Framework
Entity Framework
Entity Framework
Entity Framework
Entity Framework
Entity Framework
Entity Framework
Entity Framework
Micro ORM
• Slimmed down ORMs
• What they lack in features they make up for in speed
• Popular flavors are PetaPoco and Dapper
Massive
Massive
Massive
Massive
Massive Demo
Debugging An ORM Demo
ORM Pros
• Simpler for developers
• Supports many database platforms
• Supports many different languages
• The impedance mismatch is handled for us
• Developer can focus on the code, not the database
ORM Cons
• Can be cumbersome to set up (NHibernate)
• Joins and complex queries can be difficult
• Hard to read performance metrics
• Another layer between the database and the application.
Final Thoughts
• ORMs continue to advance
• Work for most solutions
• Consider stored procedures or views for finer control.
Code Links
• NHibernate Demo Source Code:https://github.com/anthem001/NHibernateDemo
• Entity Framework Demo Source Code:https://github.com/anthem001/EntityFrameworkDemo
• Massive Micro ORM Demo Source Code:https://github.com/anthem001/MassiveORMDemo
• Slides posted at: http://zero1design.com
Thanks!
Twitter: @greeleygeekE-Mail: [email protected]