Il micro-ORM per query ad alte performance
Cos'è Dapper e quando usarlo al posto di Entity Framework
Tutto quello che devi sapere su Dapper: il micro-ORM per .NET che offre velocità e controllo totale sulle query SQL.
Dapper è un micro-ORM per .NET sviluppato dal team di Stack Overflow, progettato per offrire performance estreme e controllo totale sulle query SQL.
A differenza di Entity Framework che genera SQL automaticamente, Dapper ti permette di scrivere le tue query SQL e mappa automaticamente i risultati su oggetti C#.
Se le performance sono la tua priorità e vuoi il pieno controllo su ogni query, Dapper è lo strumento giusto.
Come funziona Dapper
Dapper è un insieme di metodi di estensione su IDbConnection. Non ha un modello a oggetti, non traccia le entità, non genera SQL: fa una cosa sola e la fa alla perfezione, mappa i risultati SQL su oggetti C#.
Funzionalità principali
| Feature | Descrizione |
|---|---|
| Query | Esegue una query SQL e mappa i risultati su una lista di oggetti tipizzati. |
| Execute | Esegue INSERT, UPDATE, DELETE e stored procedure con parametri tipizzati. |
| Multi-mapping | Mappa join SQL su oggetti C# correlati in una singola query. |
| Multi-result | Legge risultati multipli da una singola query (QueryMultiple). |
| Async nativo | QueryAsync, ExecuteAsync per operazioni non bloccanti. |
| Parametri tipizzati | Prevenzione SQL injection automatica con parametri oggetto. |
Dapper è velocissimo perché non ha overhead: niente change tracking, niente lazy loading, niente generazione SQL. Solo mapping puro.
Dapper vs Entity Framework: quando usare quale
| Aspetto | Dapper | Entity Framework Core |
|---|---|---|
| Performance | Quasi nativo (poche µs di overhead) | Buone (con overhead per tracking) |
| SQL | Scritto manualmente (pieno controllo) | Generato da LINQ (conveniente) |
| Migrations | Non supportate (usa tool esterni) | Integrate con Code-First |
| Change tracking | No (più veloce) | Sì (più comodo per CRUD) |
| Learning curve | Minima (conosci SQL, conosci Dapper) | Media (LINQ, navigation, conventions) |
| Batch operations | Via SQL diretto | ExecuteUpdate/ExecuteDelete (EF 7+) |
| Caching | Da implementare | Query caching integrato |
Quando scegliere Dapper
- Query complesse con join multipli dove vuoi SQL ottimizzato a mano
- Hot path con requisiti di latenza stringenti
- Applicazioni read-heavy con stored procedure esistenti
- Microservizi leggeri dove l'overhead di EF non è giustificato
Quando scegliere Entity Framework
- Applicazioni CRUD standard dove la produttività è prioritaria
- Progetti che beneficiano di migrations automatiche
- Team che preferiscono LINQ a SQL puro
Vantaggi di Dapper
Performance imbattibili, Overhead minimo rispetto a ADO.NET puro. Usato in produzione da Stack Overflow.
Semplicità, Un singolo pacchetto NuGet, pochi metodi, zero configurazione. Impari in un'ora.
Controllo SQL, Scrivi esattamente la query che vuoi. Nessuna sorpresa nella SQL generata.
Compatibilità, Funziona con qualsiasi database che supporti ADO.NET: SQL Server, PostgreSQL, MySQL, SQLite.
Async-first, Supporto completo per async/await su tutte le operazioni.
Inizia con Dapper: risorse
Vuoi padroneggiare l'accesso ai dati in .NET?
Scegli lo strumento giusto per ogni progetto
Con il nostro corso .NET imparerai Dapper, Entity Framework e le best practice per gestire i dati in applicazioni enterprise.
Domande frequenti
Dapper è un micro-ORM per .NET sviluppato dal team di Stack Overflow. Mappa i risultati delle query SQL su oggetti C# con performance vicine ad ADO.NET puro.
Sì, Dapper è completamente open-source e gratuito, disponibile come pacchetto NuGet. È uno dei micro-ORM più usati nell'ecosistema .NET.
Dapper richiede SQL manuale ma offre performance superiori. Entity Framework genera SQL da LINQ ed è più comodo per operazioni CRUD standard ma con overhead maggiore.
Usa Dapper quando le performance sono critiche, quando hai query complesse da ottimizzare a mano, o quando lavori con stored procedure e database legacy.
Il modo migliore è seguire un percorso strutturato con progetti pratici. Il nostro corso .NET include Dapper, Entity Framework e le best practice per la gestione dati.