~/talk

Pitfalls of relational DB access in .NET: rethinking micro-ORMs

Talkat DotNext 2019 Piter · 2019-05-15..05-16· [databases, dotnet]
links:none on file
slides:none on file

Claims that async everywhere helps are false: mostly-completed async calls (OpenAsync, ReadAsync, NextResultAsync) waste allocations so only ExecuteReader needs true async because connection pooling makes OpenAsync usually complete. Benchmarks show Dapper ~20% slower than the fastest micro-ORM and EF is orders of magnitude slower on cold starts. A two-stage fast disconnect (return DTOs, disconnect, then materialize POCOs) improves server efficiency. Memory trick: implement GTO as struct to shrink per-row footprint from ~32 bytes to 8 bytes. Tiny ORM fits ~700 lines and applies these optimizations.

AI-written summary · about

  1. 0:00Introduction
  2. 2:08About me
  3. 2:45Agenda
  4. 3:23Myth AtoNET
  5. 7:55Summary
  6. 8:57Method 1 Database connections must be there
  7. 11:11Method 2 You must have Pocus
  8. 16:17Method 3 Easy to use
  9. 25:13Method 4 Overhead
  10. 28:06Method 5 Multiple approaches
  11. 28:43One stage approach
  12. 29:51Two stage approach
  13. 30:43Comparison
  14. 35:38Giving it back
  15. 38:17Comparing microORMs
  16. 39:35Visualizing microORMs
  17. 41:42Improving iteration performance
  18. 49:03Bonus myths
  19. 51:00Asterix support
  20. 52:15Hybrid solution
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.