SlideShare ist ein Scribd-Unternehmen logo
1 von 36
R E F O R M Death to ORMs in .NET
“A Propos de Moi” @kouphax http://github.com/kouphax http://yobriefca.se
Disclaimer This presentation is full of opinion.  My opinion.  The fact is ORMs have been around for a long time and will be for a while yet.  If things were as simple as I portray them in this presentation you wouldn’t be using them today.   But you probably are. All I ask is that you never blindly use an ORM or any technology without prior brain thinking™
On with the show…
ORMs are for Life… So you’ve adopted an ORM, possibly NHibernate MyBatis Entity Framework The samples, blogs and demos promise you a better life, your “hello world” grade apps are easy and it adds another shiny buzzword to your CV (Resume Driven Development) You dive right in investing a heap of development cycles, things start out well…
Suddenly and Without Warning…
The Cracks Start To Show Leaky Abstractions Bugger to debug Forced to work for the ORM rather than the ORM working for you DBAs begin to call you names Code generation and heavy use of model-polluting attributes bog you down Cost of change is high Overreliance on ORMs make you dumb
ORMs in .NET – More Like WTFs NHibernate HQL – WTF? MyBatis XML as a medium for SQL? – WTF? Entity Framework Great demoware but the reality is more like WTF?
Lets Be Honest How many features of a heavyweight ORM do you really use regularly?  80%? 20%? 10%? How many of these features exist purely to support the abstraction? How difficult is the mapping between DB’s and objects really?  Isn’t SQL the best DSL for working with data in a relational database?
So why is this abstraction necessary?
It isn’t.
Historically speaking the alternatives were pretty slim.  Most people would need to roll their own project specific data access layer Many ORMs grew out of that sort of thinking but from a community that thought XML was sexy Some people are weird The world is a saner place these days.   Reflection is faster Statically typed languages have embraced dynamics, and, most people realise XML is a noisy medium for almost everything
The Advent of Micro ORMs
Level of Abstraction Micro ORMs Heavyweight ORMs
Dapper
Dapper Created by Sam Saffron of Stackoverflow Single file (available on Nuget) Set of extension methods to IDbConnection Supports most .NET ADO providers SQL Server, Oracle, SQLite, MySQL, SQL CE  Works on boths POCOs and dynamic objects Pretty close to the metal No connection handling No helpers for INSERT, DELETE, UPDATE etc. Community extensions for CRUD operations .NET 3.5 support
Demo
Queries Dapper
Inserts, Updates & Deletes Dapper
Inserts, Updates & Deletes (CE) Dapper
Dapper is very close to the metal Very little in the way of providing helpers for 1..N, N..N relationships Dapper Community Extensions bridge some of the mental gap for people not used to SQL Dapper And the rest…
ORMLite
ORMLite Part of the ServiceStack technology suite Set of CRUD extensions around System.Data.* namespace Currently supports SQLite and SQL Server Maps data to and from concrete POCOs Via convention Via attributes on the POCO – preferred Via raw SQL Relies heavily on POCO attribution Supports .NET 3.5
Demo
Configuration ORMLite
Queries ORMLite
Inserts, Updates & Deletes ORMLite
ORMLite also allows you to create tables from entities Each model must have an Id property which must be its primary key. Integrates into the rest of the ServiceStack technology stack ORMLite And the rest…
Massive
Massive Created by Rob Conrey Single file (available on Nuget) Makes extensive use of dynamics No mapping to POCOs for queries Prefers to wrap tables rather than entities Provides a single point of configuration No need for attributes OOTB Paging support .NET 4 Only
Demo
Creating the Dynamic Model Massive
Queries Massive
Inserts, Updates & Deletes Massive
Validations Events Also Github says… Asynchronous support for queries Ability to reflect Schema Metadata Ability to generate a (DB) default row Factory method for ad hoc/on the fly queries Massive And the rest…

Weitere ähnliche Inhalte

Was ist angesagt?

Storm - As deep into real-time data processing as you can get in 30 minutes.
Storm - As deep into real-time data processing as you can get in 30 minutes.Storm - As deep into real-time data processing as you can get in 30 minutes.
Storm - As deep into real-time data processing as you can get in 30 minutes.
Dan Lynn
 
Progress report2 eliza_cani_3217
Progress report2 eliza_cani_3217Progress report2 eliza_cani_3217
Progress report2 eliza_cani_3217
Eliza Cani
 
Storm: Distributed and fault tolerant realtime computation
Storm: Distributed and fault tolerant realtime computationStorm: Distributed and fault tolerant realtime computation
Storm: Distributed and fault tolerant realtime computation
Ferran Galí Reniu
 

Was ist angesagt? (15)

Real Time Graph Computations in Storm, Neo4J, Python - PyCon India 2013
Real Time Graph Computations in Storm, Neo4J, Python - PyCon India 2013Real Time Graph Computations in Storm, Neo4J, Python - PyCon India 2013
Real Time Graph Computations in Storm, Neo4J, Python - PyCon India 2013
 
Apache Storm Internals
Apache Storm InternalsApache Storm Internals
Apache Storm Internals
 
Hierarchical Systems Policy Management in a Puppet/LDAP Environment
Hierarchical Systems Policy Management in a Puppet/LDAP EnvironmentHierarchical Systems Policy Management in a Puppet/LDAP Environment
Hierarchical Systems Policy Management in a Puppet/LDAP Environment
 
Intro to Python
Intro to PythonIntro to Python
Intro to Python
 
Storm: The Real-Time Layer - GlueCon 2012
Storm: The Real-Time Layer  - GlueCon 2012Storm: The Real-Time Layer  - GlueCon 2012
Storm: The Real-Time Layer - GlueCon 2012
 
Storm - As deep into real-time data processing as you can get in 30 minutes.
Storm - As deep into real-time data processing as you can get in 30 minutes.Storm - As deep into real-time data processing as you can get in 30 minutes.
Storm - As deep into real-time data processing as you can get in 30 minutes.
 
Storm Real Time Computation
Storm Real Time ComputationStorm Real Time Computation
Storm Real Time Computation
 
Progress report2 eliza_cani_3217
Progress report2 eliza_cani_3217Progress report2 eliza_cani_3217
Progress report2 eliza_cani_3217
 
Pharo Status ESUG 2014
Pharo Status ESUG 2014Pharo Status ESUG 2014
Pharo Status ESUG 2014
 
PharoDAYS 2015: Pharo Status - by Markus Denker
PharoDAYS 2015: Pharo Status - by Markus DenkerPharoDAYS 2015: Pharo Status - by Markus Denker
PharoDAYS 2015: Pharo Status - by Markus Denker
 
Terraform Best Practices - DevOps Unicorns 2019
Terraform Best Practices - DevOps Unicorns 2019Terraform Best Practices - DevOps Unicorns 2019
Terraform Best Practices - DevOps Unicorns 2019
 
Resource Aware Scheduling in Apache Storm
Resource Aware Scheduling in Apache StormResource Aware Scheduling in Apache Storm
Resource Aware Scheduling in Apache Storm
 
Real-time Big Data Processing with Storm
Real-time Big Data Processing with StormReal-time Big Data Processing with Storm
Real-time Big Data Processing with Storm
 
Storm: Distributed and fault tolerant realtime computation
Storm: Distributed and fault tolerant realtime computationStorm: Distributed and fault tolerant realtime computation
Storm: Distributed and fault tolerant realtime computation
 
Apache Storm
Apache StormApache Storm
Apache Storm
 

Andere mochten auch (8)

Dapper & Dapper.SimpleCRUD
Dapper & Dapper.SimpleCRUDDapper & Dapper.SimpleCRUD
Dapper & Dapper.SimpleCRUD
 
Location based AR & how it works
Location based AR & how it worksLocation based AR & how it works
Location based AR & how it works
 
BlackBerry Basic
BlackBerry BasicBlackBerry Basic
BlackBerry Basic
 
Cryptography Fundamentals
Cryptography FundamentalsCryptography Fundamentals
Cryptography Fundamentals
 
Twitter Bootstrap Presentation
Twitter Bootstrap PresentationTwitter Bootstrap Presentation
Twitter Bootstrap Presentation
 
WCF
WCFWCF
WCF
 
專業前端 都如何管理 CSS
專業前端 都如何管理 CSS專業前端 都如何管理 CSS
專業前端 都如何管理 CSS
 
PCI DSS
PCI DSSPCI DSS
PCI DSS
 

Ähnlich wie refORM: Death to ORMs in .NET

The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...
The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...
The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...
Lucidworks
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
guestebde
 

Ähnlich wie refORM: Death to ORMs in .NET (20)

Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Dean4j@Njug5
 
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
Sinfonier: How I turned my grandmother into a data analyst - Fran J. Gomez - ...
 
Jared Whitlock Open Source In The Enterprise Plone @ Novell
Jared Whitlock   Open Source In The Enterprise    Plone @ NovellJared Whitlock   Open Source In The Enterprise    Plone @ Novell
Jared Whitlock Open Source In The Enterprise Plone @ Novell
 
Dapper: the microORM that will change your life
Dapper: the microORM that will change your lifeDapper: the microORM that will change your life
Dapper: the microORM that will change your life
 
Domain oriented development
Domain oriented developmentDomain oriented development
Domain oriented development
 
Robotics, Search and AI with Solr, MyRobotLab, and Deeplearning4j
Robotics, Search and AI with Solr, MyRobotLab, and Deeplearning4jRobotics, Search and AI with Solr, MyRobotLab, and Deeplearning4j
Robotics, Search and AI with Solr, MyRobotLab, and Deeplearning4j
 
The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...
The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...
The Intersection of Robotics, Search and AI with Solr, MyRobotLab, and Deep L...
 
Django in enterprise world
Django in enterprise worldDjango in enterprise world
Django in enterprise world
 
What Web Framework To Use?
What Web Framework To Use?What Web Framework To Use?
What Web Framework To Use?
 
What does OOP stand for?
What does OOP stand for?What does OOP stand for?
What does OOP stand for?
 
Delphi ORM SOA MVC SQL NoSQL JSON REST mORMot
Delphi ORM SOA MVC SQL NoSQL JSON REST mORMotDelphi ORM SOA MVC SQL NoSQL JSON REST mORMot
Delphi ORM SOA MVC SQL NoSQL JSON REST mORMot
 
Intro to openFrameworks
Intro to openFrameworksIntro to openFrameworks
Intro to openFrameworks
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
 
Rails in the Large - Neal Ford
Rails in the Large - Neal FordRails in the Large - Neal Ford
Rails in the Large - Neal Ford
 
10 Ways To Improve Your Code
10 Ways To Improve Your Code10 Ways To Improve Your Code
10 Ways To Improve Your Code
 
openQA Hoverboard - Open-source Question Answering Framework
openQA Hoverboard - Open-source Question Answering FrameworkopenQA Hoverboard - Open-source Question Answering Framework
openQA Hoverboard - Open-source Question Answering Framework
 
UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015
 
Pharo Status
Pharo StatusPharo Status
Pharo Status
 
Os Solomon
Os SolomonOs Solomon
Os Solomon
 
Super Sizing Youtube with Python
Super Sizing Youtube with PythonSuper Sizing Youtube with Python
Super Sizing Youtube with Python
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
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
 
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)
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 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...
 
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
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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...
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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
 
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
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

refORM: Death to ORMs in .NET

  • 1. R E F O R M Death to ORMs in .NET
  • 2. “A Propos de Moi” @kouphax http://github.com/kouphax http://yobriefca.se
  • 3. Disclaimer This presentation is full of opinion. My opinion. The fact is ORMs have been around for a long time and will be for a while yet. If things were as simple as I portray them in this presentation you wouldn’t be using them today. But you probably are. All I ask is that you never blindly use an ORM or any technology without prior brain thinking™
  • 4. On with the show…
  • 5. ORMs are for Life… So you’ve adopted an ORM, possibly NHibernate MyBatis Entity Framework The samples, blogs and demos promise you a better life, your “hello world” grade apps are easy and it adds another shiny buzzword to your CV (Resume Driven Development) You dive right in investing a heap of development cycles, things start out well…
  • 6. Suddenly and Without Warning…
  • 7. The Cracks Start To Show Leaky Abstractions Bugger to debug Forced to work for the ORM rather than the ORM working for you DBAs begin to call you names Code generation and heavy use of model-polluting attributes bog you down Cost of change is high Overreliance on ORMs make you dumb
  • 8.
  • 9. ORMs in .NET – More Like WTFs NHibernate HQL – WTF? MyBatis XML as a medium for SQL? – WTF? Entity Framework Great demoware but the reality is more like WTF?
  • 10. Lets Be Honest How many features of a heavyweight ORM do you really use regularly? 80%? 20%? 10%? How many of these features exist purely to support the abstraction? How difficult is the mapping between DB’s and objects really? Isn’t SQL the best DSL for working with data in a relational database?
  • 11. So why is this abstraction necessary?
  • 13. Historically speaking the alternatives were pretty slim. Most people would need to roll their own project specific data access layer Many ORMs grew out of that sort of thinking but from a community that thought XML was sexy Some people are weird The world is a saner place these days. Reflection is faster Statically typed languages have embraced dynamics, and, most people realise XML is a noisy medium for almost everything
  • 14. The Advent of Micro ORMs
  • 15. Level of Abstraction Micro ORMs Heavyweight ORMs
  • 17. Dapper Created by Sam Saffron of Stackoverflow Single file (available on Nuget) Set of extension methods to IDbConnection Supports most .NET ADO providers SQL Server, Oracle, SQLite, MySQL, SQL CE Works on boths POCOs and dynamic objects Pretty close to the metal No connection handling No helpers for INSERT, DELETE, UPDATE etc. Community extensions for CRUD operations .NET 3.5 support
  • 18. Demo
  • 20. Inserts, Updates & Deletes Dapper
  • 21. Inserts, Updates & Deletes (CE) Dapper
  • 22. Dapper is very close to the metal Very little in the way of providing helpers for 1..N, N..N relationships Dapper Community Extensions bridge some of the mental gap for people not used to SQL Dapper And the rest…
  • 24. ORMLite Part of the ServiceStack technology suite Set of CRUD extensions around System.Data.* namespace Currently supports SQLite and SQL Server Maps data to and from concrete POCOs Via convention Via attributes on the POCO – preferred Via raw SQL Relies heavily on POCO attribution Supports .NET 3.5
  • 25. Demo
  • 28. Inserts, Updates & Deletes ORMLite
  • 29. ORMLite also allows you to create tables from entities Each model must have an Id property which must be its primary key. Integrates into the rest of the ServiceStack technology stack ORMLite And the rest…
  • 31. Massive Created by Rob Conrey Single file (available on Nuget) Makes extensive use of dynamics No mapping to POCOs for queries Prefers to wrap tables rather than entities Provides a single point of configuration No need for attributes OOTB Paging support .NET 4 Only
  • 32. Demo
  • 33. Creating the Dynamic Model Massive
  • 35. Inserts, Updates & Deletes Massive
  • 36. Validations Events Also Github says… Asynchronous support for queries Ability to reflect Schema Metadata Ability to generate a (DB) default row Factory method for ad hoc/on the fly queries Massive And the rest…
  • 38. PetaPoco Yet another single file (and on Nuget) Inspired by Massive and Subsonic Supports POCOs (and optional attributes) Paging and transaction support OOTB Works with SQL Server, SQL Server CE, MySQL, PostgreSQL and Oracle. .NET 3.5 upwards
  • 39. Demo
  • 42. Inserts, Updates & Deletes PetaPoco
  • 43. Out of the box support for 1..N, N..N fetching of objects Slightly awkward approach RelationExtensions project abstracts this awkwardness for 1..N, N..1 queries Provides a set of T4 Templates for generating POCOs from DB schema PetaPoco And the rest…
  • 45. Simple.Data Slightly different beast though it’s principles are firmly in the MicroORM camp. Data Access Component Not just for relational databases NoSQL support Extensible Adapter/Provider support Supports a wide range of data stores SQL Server, SQL Server CE, Oracle, MySQL, SQLite, MongoDB .NET 4 only Extensive use of dynamics and meta-programming concepts. TryInvokeMember, Method name reflection
  • 46. Demo
  • 47. Creating the Database Simple.Data
  • 49. Inserts, Updates & Deletes Simple.Data
  • 50. Inclusion of Simple.Data here may seem like a bit of contradiction. After all it is a straight up abstraction. It makes the 95th centile of all CRUD tasks “simple” Ability to compose DAL from other lightweight frameworks for the other edge case tasks Additive approach rather than upfront monolithic approach Simple.Data And the rest…

Hinweis der Redaktion

  1. The purpose of this presentation today is to try and show you that the typical ORMs and Data Mappers you probably use in your projects are not the only option. I’m going to touch on some of their common pain points and hopefully most of you will have experienced some of them in some shape or form. After that I’ll give you a fairly high level overview of many of the more lightweight appraoches which I’m hoping will speak for themselves in terms of ease of use and brevity.
  2. The Answer
  3. What are they?What exists out there?
  4. The Answer
  5. With ORMs you get certain things for free with certain sacrifices. Many of these sacrifices directly affect your DBAsYou’ve immediatley created a defensive DBA and that aint pretty
  6. Eventually you realise your ORM has let itself go and no amount of refactoring is going to change things
  7. I’ve had to
  8. The question
  9. The Answer
  10. The modern development landscape has created a melting pot of lightweight innovation and micro ORMs are becoming quite prominent. The name itself is often a bit of misnomer. I suppose they are closer to Data Mappers than true ORMs but it’s a catchy name so
  11. The modern development landscape has created a melting pot of lightweight innovation and micro ORMs are becoming quite prominent. The name itself is often a bit of misnomer. I suppose they are closer to Data Mappers than true ORMs but it’s a catchy name so
  12. The modern development landscape has created a melting pot of lightweight innovation and micro ORMs are becoming quite prominent. The name itself is often a bit of misnomer. I suppose they are closer to Data Mappers than true ORMs but it’s a catchy name so
  13. The modern development landscape has created a melting pot of lightweight innovation and micro ORMs are becoming quite prominent. The name itself is often a bit of misnomer. I suppose they are closer to Data Mappers than true ORMs but it’s a catchy name so
  14. Attributes are fine(ish)
  15. The modern development landscape has created a melting pot of lightweight innovation and micro ORMs are becoming quite prominent. The name itself is often a bit of misnomer. I suppose they are closer to Data Mappers than true ORMs but it’s a catchy name so
  16. The modern development landscape has created a melting pot of lightweight innovation and micro ORMs are becoming quite prominent. The name itself is often a bit of misnomer. I suppose they are closer to Data Mappers than true ORMs but it’s a catchy name so
  17. The modern development landscape has created a melting pot of lightweight innovation and micro ORMs are becoming quite prominent. The name itself is often a bit of misnomer. I suppose they are closer to Data Mappers than true ORMs but it’s a catchy name so
  18. You can also do things like set the table name
  19. You can also do things like set the table name
  20. The modern development landscape has created a melting pot of lightweight innovation and micro ORMs are becoming quite prominent. The name itself is often a bit of misnomer. I suppose they are closer to Data Mappers than true ORMs but it’s a catchy name so
  21. The modern development landscape has created a melting pot of lightweight innovation and micro ORMs are becoming quite prominent. The name itself is often a bit of misnomer. I suppose they are closer to Data Mappers than true ORMs but it’s a catchy name so
  22. You can also do things like set the table name
  23. You can also do things like set the table name
  24. The modern development landscape has created a melting pot of lightweight innovation and micro ORMs are becoming quite prominent. The name itself is often a bit of misnomer. I suppose they are closer to Data Mappers than true ORMs but it’s a catchy name so
  25. The modern development landscape has created a melting pot of lightweight innovation and micro ORMs are becoming quite prominent. The name itself is often a bit of misnomer. I suppose they are closer to Data Mappers than true ORMs but it’s a catchy name so
  26. You can also do things like set the table name
  27. You can also do things like set the table name
  28. But a last it isn’t a swathe of mandatory configuration. Convention based.But it’s still very lightweight in comparison to the likes And the philosophy rests firmly in the MicroORM worldMicroORMs are more composable due to their sze and complexity