SlideShare a Scribd company logo
1 of 35
Download to read offline
Welcome Everyone!
Today's Topic
Object Relational Mapping
with Dapper (a micro ORM)
Road map
Application Architecture
↓
Databases
↓
ORM
↓
Dapper
Web App Architecture
Databases
(A quick overview)
Types of Databases
● Relational Database Management Systems (RDBMS)
● NoSQL and Object-Oriented (OODBMS)
RDBMS
Data Storage
– Rows and columns (Tabular Form)
Features
– Simple, better performance of managing data
– Mathematical foundation (Relational Algebra)
– Flattening and scattering -> unnatural
– Limitations: everything doesn't fit in relations
– Conversion needed (impedance mismatch)
NoSQL and OODBMS
Data Storage
– Object Form
Features
– No conversion needed (no impedance mismatch)
– Relationships are directly represented, rather than requiring
join tables/operations
– Better at modeling complex objects
– No mathematical foundation
– Don’t have maturity of RDBMS yet
Incompatible Type Systems
● During systems collaboration if systems found having
different type systems, they are said to be Incompatible
Type Systems and can't interact with each other without an
interface. E.g. OO Applications and RDBMS.
● A mechanism/solution is needed to overcome this
incompatibility gap for proper collaboration.
Solution for Incompatibility?
What is an ORM?
● It is a programming technique for converting data between
incompatible type systems in object-oriented programming
languages.
Why to use ORM?
● Many popular database products such as structured query
language database management systems (SQL DBMS) can
only store and manipulate scalar values such as integers
and strings organized within tables. The programmer must
convert the object values for storage in the database into
groups of simpler values (and convert them back upon
retrieval).
● For most of the data-access code that developers usually
need to write, it eliminates.
Problems with ORM
● Object-Relational Impedance Mismatch (paradigm
mismatch) is a way of saying that object models and
relational models do not work very well together. Loading
and storing graphs of objects using a tabular relational
database exposes 5 mismatch problems.
– Granularity
– Subtypes (inheritance)
– Identity
– Associations
– Data navigation
Types of ORM
● Entity-based relational mapping
– Change tracking, Lazy-loading, Eager fetching, Cascades, Identity map, Unit of work
tracking
● Result-set-based relational mapping
– Map straight to DTOs and skip needing to configure mapping
● DML-based relational mapping (micro ORMs)
– SQL is brought to the forefront, mapping on the fly and only need a connection
● Bulk loading tools
– Limited to INSERT and SELECT
Boring???
Dapper
(A micro ORM)
Why Dapper ?
● Simple object mapper for .Net
● Performance is a key feature
Why Dapper is Simple/ Lightweight?
● Many feature that ORMs ship with are stripped out, there is
no identity map, there are no helpers for update/select
and so on.
● Dapper does not manage your connection's life cycle, it
assumes the connection it gets is open AND has no existing
data readers enumerating.
Dapper Performance Measures?
Dapper in Action
Dapper in Action
● Dapper is a “single file” (SqlMapper.cs) that will extend
your IDbConnection interface.
● It provides 3 helpers:
– Execute a query and map the results to a strongly typed
List
– Execute a query and map it to a list of dynamic objects
– Execute a Command that returns no results
(1) Query with Strongly Typed Result
(2) Query with Dynamic Object Result
(3) Command with No Result
Execute a Command multiple times
Execute a Stored Procedure
Multiple Results in Single Query
Limitations of Dapper?
● Many feature that ORMs ship with are stripped out, there is
no identity map, there are no helpers for update/select and
so on.
● Dapper does not manage your connection's life cycle, it
assumes the connection it gets is open.
Final words on Dapper
(Finally towards ending!)
Configurations (Most hectic activity)?
Surprisingly!!! No configuration needed in project, just add
reference to the library and you are done.
– Reasons
● It uses existing db connection (extends IDbConnection).
● It just does object mapping, nothing else as mentioned in
features.
Applications
● Stack Overflow
● Helpdesk
● And many more
Dapper and DB providers
● Dapper has no DB specific implementation details, it works
across all .Net ADO providers including sqlite, sqlce,
firebird, oracle, MySQL, PostgreSQL and SQL Server.
Conclusion
● Simple and lightweight to implement / use.
● Provide enough helpers/ support to do ORM activities.
● Doesn't suppress developers SQL skills.
Recommendation (Hybrid Approach)
● Dapper was written with speed (not features) as a priority.
● Using Dapper felt like writing SQL, which majority of developers
avoid when possible.
● For Entity Framework slowness issue, replace queries with
either a view or a stored procedure, depending on the
situation.
● Hybrid approach: Use EF for normal cases due to ease and use
Dapper where performance boost in needed.
References
● http://en.wikipedia.org/wiki/Object-relational_mapping
● http://hibernate.org/orm/what-is-an-orm/
● https://github.com/StackExchange/dapper-dot-net
● https://www.cl.cam.ac.uk/~fms27/db/tr-98-2.pdf
● http://searchcio.techtarget.com/opinion/Relational-databases-are-far-from-dead-just-ask-Facebook
● https://www.quora.com/What-is-LinkedIn-s-database-architecture-like
● http://www.infoq.com/news/2010/08/linkedin-data-infrastructure
● http://blog.dontpaniclabs.com/post/2014/05/01/Speed-Comparison-Dapper-vs-Entity-Framework
● http://lostechies.com/jimmybogard/2012/07/20/choosing-an-orm-strategy/
● http://forums.asp.net/t/1792276.aspx?which+is+better+to+use+dapper+or+entity

More Related Content

What's hot

Query-time Nonparametric Regression with Temporally Bounded Models - Patrick ...
Query-time Nonparametric Regression with Temporally Bounded Models - Patrick ...Query-time Nonparametric Regression with Temporally Bounded Models - Patrick ...
Query-time Nonparametric Regression with Temporally Bounded Models - Patrick ...
Lucidworks
 
Trends in programming languages
Trends in programming languagesTrends in programming languages
Trends in programming languages
Antya Dev
 

What's hot (14)

Domain oriented development
Domain oriented developmentDomain oriented development
Domain oriented development
 
Day 7 - Make it Fast
Day 7 - Make it FastDay 7 - Make it Fast
Day 7 - Make it Fast
 
JavaScript : A trending scripting language
JavaScript : A trending scripting languageJavaScript : A trending scripting language
JavaScript : A trending scripting language
 
ASP.NET MVC and Entity Framework 4
ASP.NET MVC and Entity Framework 4ASP.NET MVC and Entity Framework 4
ASP.NET MVC and Entity Framework 4
 
Ebooks without Vendors: Using Open Source Software to Create and Share Meanin...
Ebooks without Vendors: Using Open Source Software to Create and Share Meanin...Ebooks without Vendors: Using Open Source Software to Create and Share Meanin...
Ebooks without Vendors: Using Open Source Software to Create and Share Meanin...
 
Keeping the fun in functional w/ Apache Spark @ Scala Days NYC
Keeping the fun in functional   w/ Apache Spark @ Scala Days NYCKeeping the fun in functional   w/ Apache Spark @ Scala Days NYC
Keeping the fun in functional w/ Apache Spark @ Scala Days NYC
 
MVC and Entity Framework 4
MVC and Entity Framework 4MVC and Entity Framework 4
MVC and Entity Framework 4
 
Query-time Nonparametric Regression with Temporally Bounded Models - Patrick ...
Query-time Nonparametric Regression with Temporally Bounded Models - Patrick ...Query-time Nonparametric Regression with Temporally Bounded Models - Patrick ...
Query-time Nonparametric Regression with Temporally Bounded Models - Patrick ...
 
Web Ninja
Web NinjaWeb Ninja
Web Ninja
 
Your First Scala Web Application using Play 2.1
Your First Scala Web Application using Play 2.1Your First Scala Web Application using Play 2.1
Your First Scala Web Application using Play 2.1
 
Building Apis in Scala with Playframework2
Building Apis in Scala with Playframework2Building Apis in Scala with Playframework2
Building Apis in Scala with Playframework2
 
Drupal: an Overview
Drupal: an OverviewDrupal: an Overview
Drupal: an Overview
 
Trends in programming languages
Trends in programming languagesTrends in programming languages
Trends in programming languages
 
The JSON architecture
The JSON architectureThe JSON architecture
The JSON architecture
 

Viewers also liked

Object relational and extended relational databases
Object relational and extended relational databasesObject relational and extended relational databases
Object relational and extended relational databases
Suhad Jihad
 

Viewers also liked (20)

Dapper
DapperDapper
Dapper
 
Dapper & Dapper.SimpleCRUD
Dapper & Dapper.SimpleCRUDDapper & Dapper.SimpleCRUD
Dapper & Dapper.SimpleCRUD
 
Dapper performance
Dapper performanceDapper performance
Dapper performance
 
Dapper - Rise of the MicroORM
Dapper - Rise of the MicroORMDapper - Rise of the MicroORM
Dapper - Rise of the MicroORM
 
Object relational and extended relational databases
Object relational and extended relational databasesObject relational and extended relational databases
Object relational and extended relational databases
 
Connection Resiliency and Command Interception in Entity Framework
Connection Resiliency and Command Interception in Entity FrameworkConnection Resiliency and Command Interception in Entity Framework
Connection Resiliency and Command Interception in Entity Framework
 
Cloud monitoring功能簡介
Cloud monitoring功能簡介Cloud monitoring功能簡介
Cloud monitoring功能簡介
 
Building High Performance Websites - Session-1
Building High Performance Websites - Session-1Building High Performance Websites - Session-1
Building High Performance Websites - Session-1
 
Entity framework introduction sesion-1
Entity framework introduction   sesion-1Entity framework introduction   sesion-1
Entity framework introduction sesion-1
 
.NET Database Toolkit
.NET Database Toolkit.NET Database Toolkit
.NET Database Toolkit
 
Dapper + QueryObject
Dapper + QueryObjectDapper + QueryObject
Dapper + QueryObject
 
Comparision
ComparisionComparision
Comparision
 
Telerik Reporting for HTML 5 Apps
Telerik Reporting for HTML 5 AppsTelerik Reporting for HTML 5 Apps
Telerik Reporting for HTML 5 Apps
 
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)
 
"Diffrence between RDBMS, OODBMS and ORDBMS"
"Diffrence between RDBMS, OODBMS and  ORDBMS""Diffrence between RDBMS, OODBMS and  ORDBMS"
"Diffrence between RDBMS, OODBMS and ORDBMS"
 
Ordbms
OrdbmsOrdbms
Ordbms
 
Rdbms
RdbmsRdbms
Rdbms
 
ITB2015 - Crash Course in Ionic + AngularJS
ITB2015 - Crash Course in Ionic + AngularJSITB2015 - Crash Course in Ionic + AngularJS
ITB2015 - Crash Course in Ionic + AngularJS
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
 

Similar to Object Relational Mapping with Dapper (Micro ORM)

NoSQL and CouchDB: the view from MOO
NoSQL and CouchDB: the view from MOONoSQL and CouchDB: the view from MOO
NoSQL and CouchDB: the view from MOO
James Hollingworth
 
Intro to Big Data and NoSQL
Intro to Big Data and NoSQLIntro to Big Data and NoSQL
Intro to Big Data and NoSQL
Don Demcsak
 
Learn about SPARK tool and it's componemts
Learn about SPARK tool and it's componemtsLearn about SPARK tool and it's componemts
Learn about SPARK tool and it's componemts
siddharth30121
 

Similar to Object Relational Mapping with Dapper (Micro ORM) (20)

L17 Data Source Layer
L17 Data Source LayerL17 Data Source Layer
L17 Data Source Layer
 
Secrets of Spark's success - Deenar Toraskar, Think Reactive
Secrets of Spark's success - Deenar Toraskar, Think Reactive Secrets of Spark's success - Deenar Toraskar, Think Reactive
Secrets of Spark's success - Deenar Toraskar, Think Reactive
 
ORM Methodology
ORM MethodologyORM Methodology
ORM Methodology
 
Introduction to SQL Alchemy - SyPy June 2013
Introduction to SQL Alchemy - SyPy June 2013Introduction to SQL Alchemy - SyPy June 2013
Introduction to SQL Alchemy - SyPy June 2013
 
In-Memory Computing - The Big Picture
In-Memory Computing - The Big PictureIn-Memory Computing - The Big Picture
In-Memory Computing - The Big Picture
 
Some NoSQL
Some NoSQLSome NoSQL
Some NoSQL
 
20160524 ibm fast data meetup
20160524 ibm fast data meetup20160524 ibm fast data meetup
20160524 ibm fast data meetup
 
NoSQL - Not Only SQL
NoSQL - Not Only SQLNoSQL - Not Only SQL
NoSQL - Not Only SQL
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
Apache Spark for Beginners
Apache Spark for BeginnersApache Spark for Beginners
Apache Spark for Beginners
 
Java Developers, make the database work for you (NLJUG JFall 2010)
Java Developers, make the database work for you (NLJUG JFall 2010)Java Developers, make the database work for you (NLJUG JFall 2010)
Java Developers, make the database work for you (NLJUG JFall 2010)
 
Evolution of the DBA to Data Platform Administrator/Specialist
Evolution of the DBA to Data Platform Administrator/SpecialistEvolution of the DBA to Data Platform Administrator/Specialist
Evolution of the DBA to Data Platform Administrator/Specialist
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
L15 Organising Domain Layer
L15 Organising Domain LayerL15 Organising Domain Layer
L15 Organising Domain Layer
 
NoSQL and CouchDB: the view from MOO
NoSQL and CouchDB: the view from MOONoSQL and CouchDB: the view from MOO
NoSQL and CouchDB: the view from MOO
 
From ddd to DDD : My journey from data-driven development to Domain-Driven De...
From ddd to DDD : My journey from data-driven development to Domain-Driven De...From ddd to DDD : My journey from data-driven development to Domain-Driven De...
From ddd to DDD : My journey from data-driven development to Domain-Driven De...
 
Big Data processing with Apache Spark
Big Data processing with Apache SparkBig Data processing with Apache Spark
Big Data processing with Apache Spark
 
What is Distributed Computing, Why we use Apache Spark
What is Distributed Computing, Why we use Apache SparkWhat is Distributed Computing, Why we use Apache Spark
What is Distributed Computing, Why we use Apache Spark
 
Intro to Big Data and NoSQL
Intro to Big Data and NoSQLIntro to Big Data and NoSQL
Intro to Big Data and NoSQL
 
Learn about SPARK tool and it's componemts
Learn about SPARK tool and it's componemtsLearn about SPARK tool and it's componemts
Learn about SPARK tool and it's componemts
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

Object Relational Mapping with Dapper (Micro ORM)

  • 2. Today's Topic Object Relational Mapping with Dapper (a micro ORM)
  • 6. Types of Databases ● Relational Database Management Systems (RDBMS) ● NoSQL and Object-Oriented (OODBMS)
  • 7. RDBMS Data Storage – Rows and columns (Tabular Form) Features – Simple, better performance of managing data – Mathematical foundation (Relational Algebra) – Flattening and scattering -> unnatural – Limitations: everything doesn't fit in relations – Conversion needed (impedance mismatch)
  • 8. NoSQL and OODBMS Data Storage – Object Form Features – No conversion needed (no impedance mismatch) – Relationships are directly represented, rather than requiring join tables/operations – Better at modeling complex objects – No mathematical foundation – Don’t have maturity of RDBMS yet
  • 9. Incompatible Type Systems ● During systems collaboration if systems found having different type systems, they are said to be Incompatible Type Systems and can't interact with each other without an interface. E.g. OO Applications and RDBMS. ● A mechanism/solution is needed to overcome this incompatibility gap for proper collaboration.
  • 11. What is an ORM? ● It is a programming technique for converting data between incompatible type systems in object-oriented programming languages.
  • 12. Why to use ORM? ● Many popular database products such as structured query language database management systems (SQL DBMS) can only store and manipulate scalar values such as integers and strings organized within tables. The programmer must convert the object values for storage in the database into groups of simpler values (and convert them back upon retrieval). ● For most of the data-access code that developers usually need to write, it eliminates.
  • 13. Problems with ORM ● Object-Relational Impedance Mismatch (paradigm mismatch) is a way of saying that object models and relational models do not work very well together. Loading and storing graphs of objects using a tabular relational database exposes 5 mismatch problems. – Granularity – Subtypes (inheritance) – Identity – Associations – Data navigation
  • 14. Types of ORM ● Entity-based relational mapping – Change tracking, Lazy-loading, Eager fetching, Cascades, Identity map, Unit of work tracking ● Result-set-based relational mapping – Map straight to DTOs and skip needing to configure mapping ● DML-based relational mapping (micro ORMs) – SQL is brought to the forefront, mapping on the fly and only need a connection ● Bulk loading tools – Limited to INSERT and SELECT
  • 17. Why Dapper ? ● Simple object mapper for .Net ● Performance is a key feature
  • 18. Why Dapper is Simple/ Lightweight? ● Many feature that ORMs ship with are stripped out, there is no identity map, there are no helpers for update/select and so on. ● Dapper does not manage your connection's life cycle, it assumes the connection it gets is open AND has no existing data readers enumerating.
  • 21. Dapper in Action ● Dapper is a “single file” (SqlMapper.cs) that will extend your IDbConnection interface. ● It provides 3 helpers: – Execute a query and map the results to a strongly typed List – Execute a query and map it to a list of dynamic objects – Execute a Command that returns no results
  • 22. (1) Query with Strongly Typed Result
  • 23. (2) Query with Dynamic Object Result
  • 24. (3) Command with No Result
  • 25. Execute a Command multiple times
  • 26. Execute a Stored Procedure
  • 27. Multiple Results in Single Query
  • 28. Limitations of Dapper? ● Many feature that ORMs ship with are stripped out, there is no identity map, there are no helpers for update/select and so on. ● Dapper does not manage your connection's life cycle, it assumes the connection it gets is open.
  • 29. Final words on Dapper (Finally towards ending!)
  • 30. Configurations (Most hectic activity)? Surprisingly!!! No configuration needed in project, just add reference to the library and you are done. – Reasons ● It uses existing db connection (extends IDbConnection). ● It just does object mapping, nothing else as mentioned in features.
  • 31. Applications ● Stack Overflow ● Helpdesk ● And many more
  • 32. Dapper and DB providers ● Dapper has no DB specific implementation details, it works across all .Net ADO providers including sqlite, sqlce, firebird, oracle, MySQL, PostgreSQL and SQL Server.
  • 33. Conclusion ● Simple and lightweight to implement / use. ● Provide enough helpers/ support to do ORM activities. ● Doesn't suppress developers SQL skills.
  • 34. Recommendation (Hybrid Approach) ● Dapper was written with speed (not features) as a priority. ● Using Dapper felt like writing SQL, which majority of developers avoid when possible. ● For Entity Framework slowness issue, replace queries with either a view or a stored procedure, depending on the situation. ● Hybrid approach: Use EF for normal cases due to ease and use Dapper where performance boost in needed.
  • 35. References ● http://en.wikipedia.org/wiki/Object-relational_mapping ● http://hibernate.org/orm/what-is-an-orm/ ● https://github.com/StackExchange/dapper-dot-net ● https://www.cl.cam.ac.uk/~fms27/db/tr-98-2.pdf ● http://searchcio.techtarget.com/opinion/Relational-databases-are-far-from-dead-just-ask-Facebook ● https://www.quora.com/What-is-LinkedIn-s-database-architecture-like ● http://www.infoq.com/news/2010/08/linkedin-data-infrastructure ● http://blog.dontpaniclabs.com/post/2014/05/01/Speed-Comparison-Dapper-vs-Entity-Framework ● http://lostechies.com/jimmybogard/2012/07/20/choosing-an-orm-strategy/ ● http://forums.asp.net/t/1792276.aspx?which+is+better+to+use+dapper+or+entity