¿Qué es Dapper?

¿Qué es Dapper?

Dapper se define como un micro ORM (Object relational mapper) y su objetivo es la de mapear una base de datos, por medio de clases en C#.

Dapper es el ORM más popular dentro de .NET y se diferencia de Entity Framework, en que este es macro y además de realizar el mapeo entre bases de datos y objetos, genera el SQL para ser ejecutado.

¿Qué es un ORM?

ORM (Object – Relational – Mapping o mapeo de objeto relacional), es una herramienta que permite mapear o convertir los objetos de una aplicación en un formato propicio para ser guardado en una base de datos.

Además de convertir los objetos de una aplicación, los ORM, ayudan a eliminar las sentencias SQL, impulsando así, las acciones CRUD (Create, Read, Update, Delete).

Características de un micro ORM

Ligero: Al no tener un diseñador, los micro ORM tienen la peculiaridad de ser muy ligeros, son recomendados para facilitar la programación de los desarrolladores.

Velocidad: Cuando se utiliza un micro ORM se logra escribir la consulta SQL de forma manual, por consiguiente, el código es escrito mucho más rápido que con Entity Framework.

Fácil de utilizar: Gran facilidad de uso al ser enfocado para desarrolladores.

Ventajas de un ORM

  • Facilidad de uso.
  • Velocidad.
  • Seguridad en el acceso a datos.

Desventajas de un ORM

  • Disminución en el rendimiento.
  • Aprendizaje del lenguaje ORM.

Características de Dapper

  • Dapper funciona con un amplio abanico de bases de datos, entre estas: SQL server, MySQL, PostgreSQL, Oracle…
  • Facilidad en el manejo de las bases de datos por medio de un mapeo automático de los objetos C#.
  • Ejecución de consultas SQL almacenadas con anterioridad.

¿Por qué Dapper?

Dapper tiene una historia interesante. Se deriva de un recurso que podría resultarle muy familiar: Marc Gravell y Sam Saffron crearon Dapper mientras trabajaban en Stack Overflow para resolver problemas de rendimiento de la plataforma. Stack Overflow es un sitio con un tráfico realmente elevado que está destinado a tener problemas de rendimiento. De acuerdo con la página About de Stack Exchange, Stack Overflow tenía 5700 millones de vistas de página en 2015.

Dapper se convirtió en la solución para optimizar el acceso a datos en Stack Overflow. Cinco años después, Dapper es una aplicación de código abierto que se usa ampliamente.

Dapper se centra en permitirle ejercitar sus conocimientos de SQL para construir consultas y comandos como cree que deben ser. Está más cerca del "final" que un ORM estándar y alivia el esfuerzo de interpretar consultas como LINQ to EF en SQL.

Dapper presenta algunas estupendas características transformacionales, como la capacidad de explosionar una lista pasada a una cláusula WHERE IN. Sin embargo, en gran parte, el lenguaje SQL que envía a Dapper está listo y las consultas llegan a la base de datos mucho más rápido.

Si es bueno con SQL, puede estar seguro de que escribe los comandos con el más alto rendimiento posible. Debe crear algún tipo de conexión IDbConnection, como SqlConnection, con una cadena de conexión conocida, para poder ejecutar las consultas. Posteriormente, con su API, Dapper puede ejecutar las consultas por usted y, si el esquema de los resultados de las consultas puede relacionarse con las propiedades del tipo de destino, puede crear instancias automáticamente y rellenar objetos con los resultados de la búsqueda.

El método Query

El método Query es un método de extensión proporcionado por Dapper. Cuando se ejecuta esta línea, Dapper abre la conexión, crea un comando DbCommand, ejecuta la consulta exactamente como la ha escrito y crea una instancia del objeto DapperDesigner para cada fila de los resultados e inserta los valores de los resultados de la consulta en las propiedades de los objetos.

Dapper puede relacionar los valores de los resultados con las propiedades por medio de unos pocos patrones, aunque los nombres de propiedad no coincidan con los nombres de columna y aunque las propiedades no estén en el mismo orden que las columnas correspondientes. Pero no puede leer la mente. Por tanto, no espere descifrar asignaciones que impliquen, por ejemplo, numerosos valores de cadena donde las órdenes o los nombres de las columnas y las propiedades no estén sincronizados.

Si quieras aprender Dapper de manera profesional adquiere nuestro NUEVO curso profesional con precio de Lanzamiento:

https://render2web.com/curso-dapper/
Dapper el curso completo y definitivo
Dapper el curso completo y definitivo

Leave a reply