Object Relational Mapping A to Z. About Me Over A Decade of I.T. Experience Web Developer, DBA,...

Post on 17-Dec-2015

212 views 0 download

Tags:

Transcript of Object Relational Mapping A to Z. About Me Over A Decade of I.T. Experience Web Developer, DBA,...

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: anthem001@gmail.com

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: anthem001@gmail.com