Dapper: O Micro ORM Para o Seu .NET... ou Não

Ah, o bom e velho Dapper. Ele promete resolver todos os problemas de performance dos seus sistemas .NET. Imagine só, um micro ORM que transforma suas complicadas queries SQL em objetos C# num piscar de olhos, sem dor de cabeça—será mesmo?

O Dapper é rápido e não precisa de todas aquelas camadas pesadas dos grandes frameworks. Sabemos o que acontece quando suas queries ficam complexas e a performance do banco vai por água abaixo: cabelo em pé, como na imagem abaixo!

Cabelo em pé

Projeto Demo

Veja uma aplicação funcionando como um protótipo de alta performance, mostrando como as coisas devem ser feitas.

Como Surgiu o Dapper

Em 2011, Marc Gravel e Sam Saffron decidiram que não iam mais tolerar a lentidão dos frameworks. Então, nasceu o Dapper.

Por que o Dapper?

Porque queremos um ORM que deixa o desenvolvedor usar seu SQL sem dificuldade. O Dapper diz: "Aproveite suas habilidades em SQL, use seus SELECTs sem medo!"

Um Micro ORM

Um Micro ORM

Esqueça os benefícios complicados como criação automática de classes. O Dapper é como café puro: direto, sem frescura.

Dapper vs SqlDataReader

Usar Dapper é simples: código mais curto e fácil de ler. Sua performance é muito parecida com a do SqlDataReader.

Resultado de Performance

Nos testes de performance do Dapper no GitHub, ele mostra que é poderoso comparado a outras bibliotecas.

Resultado de Performance

Detalhes do Dapper

O Dapper funciona com qualquer banco que use IDbConnection. Desde buscas até mapeamento, tudo sob controle.

Extensions Methods

Query: Roda suas queries e transforma tudo em objetos C#.
Execute: Roda seu comando SQL, retornando quantas linhas foram afetadas.
QueryFirst, QueryFirstOrDefault, QuerySingle, QuerySingleOrDefault, QueryMultiple: Ferramentas para lidar com suas queries de várias formas.

Parametrizando Queries

Parametrizando Queries

Usa técnicas como Anonymous, Dynamic, e List para parametrizar suas queries.

Mapeando Objetos

Mapeando Objetos

Com Tipado e Dynamic, seus mapeamentos ficam mais fáceis. Ele cuida dos cenários de um para muitos!

Cenários One to many

O Multi-Mapping resolve relacionamentos entre classes sem complicação.

Demo

Confira uma demonstração do que o Dapper pode fazer.

Download

Até o Octocat aparece junto com o Clippy, oferecendo ajuda pelo repositório no GitHub.

Clippy Octocat

Referências

Veja aqui artigos e tutoriais sobre Dapper para você começar a usar. Afinal, quem não gosta de um ORM simples e direto?