Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Object Relational Mapping From A to Z

Avatar for Kelly Kelly
September 07, 2013

Object Relational Mapping From A to Z

Avatar for Kelly

Kelly

September 07, 2013

Other Decks in Technology

Transcript

  1. About Me Over A Decade of I.T. Experience Web Developer,

    DBA, DevOps, Mobile Microsoft Cert. in SQL Server Twitter: @greeleygeek E-Mail: [email protected]
  2. 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
  3. 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.
  4. What Is An ORM? • Database Management Systems: ~1960 •

    Object Oriented Programming: ~50s/60s • One of the first ORMs was TopLink for SmallTalk in 1994
  5. 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.”
  6. 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)
  7. Micro ORM • Slimmed down ORMs • What they lack

    in features they make up for in speed • Popular flavors are PetaPoco and Dapper
  8. 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
  9. 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.
  10. Final Thoughts • ORMs continue to advance • Work for

    most solutions • Consider stored procedures or views for finer control.
  11. 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 Twitter: @greeleygeek E-Mail: [email protected]