A medida que avanza el tiempo las nuevas tecnologías también lo hacen, desafortunadamente aun encontramos barreras en la adopción de las mismas; muchas veces por el miedo al fracaso que implica el riesgo de probar nuevas tecnologías o modelos de programación, tal es el caso de los MicroORMs.

No todo el mundo conoce la bondad de los MicroORMs o no se ven en la necesidad de probarlas gracias a la facilidad que ofrecen otros ORMs como Entity Framework; a pesar de que muchos saben que no siempre es la mejor opción.

Platicando con amigos, en esas charlas “frikis”, me comentaron de un popular modelo de programación, utilizada en diversas consultorías en el ambiente laboral estadounidense, PetaPoco. Debido a esa charla, empecé a investigar más acerca de estas, sus ventajas y desventajas, y decidí probarlo.

Esto no pretende ser una defensa a capa y espada de esa tecnología, sino un pequeño análisis que gracias a sus resultados considero importante compartirles. Para ello desarrollé una pequeña aplicación de consola (nada muy elaborado) enfocada al análisis y comparación de tiempos entre ADO.Net, Entity Framework y PetaPoco.

Debo aclarar que la elección de estos modelos no fue al azar, a pesar que ADO no es tan nuevo, sigue siendo una de las más utilizadas en el mercado laboral y seguramente seguirá siendo una variable con la que te encontrarás en proyectos subsecuentes.

En cuanto a las condiciones de la prueba, la base de datos se montó en un servidor local, con las siguientes especificaciones del equipo y funcionando con la menor cantidad de programas posibles:

Especificaciones del equipo:

  • Dell Inspiron 5 Serie 700
  • Procesador I7. 16GB RAM
  • Windows 8.1
  • SQL Server 2014.

EL motor de base de datos es SQL Server 2014 y la estructura de la tabla de prueba es la siguiente:Captura de pantalla 2015-08-04 a las 17.01.50

Procediendo con la prueba, se realizaron tres ejecuciones, con tres cantidades de registros diferentes.

La primera con 50 registros:

Captura de pantalla 2015-08-04 a las 17.07.00

La segunda ejecución se realizó con 500 registros:

Captura de pantalla 2015-08-04 a las 17.09.20

Por último, se asignaron 5000 registros:

Captura de pantalla 2015-08-04 a las 17.10.53

Observando los resultados obtenidos; es evidente la falta de performance de Entity Framework, de la misma forma es notable que ADO.Net es el ganador de la contienda respecto a tiempos; y es importante destacar que la ayuda de un ORM siempre es agradecida por cualquier desarrollador.

También hay que resaltar la divergencia en el tiempo de inserción entre ADO y PetaPoco, en algún caso en particular puede llegar a ser significativa, pero en lo general el performance es muy parecido. PetaPoco es compacto, potente y competente.

Debo aclarar que en mi experiencia, la implementación fue grata debido a la buena documentación existente, tanto por el desarrollador (Brad Robinson de TopTen Software) como por el foro de preguntas y respuestas existente.

Te invito amigo lector a revisar PetaPoco1, y a implementar alguna solución con esta tecnología, pero no sólo te quedes ahí, investiga sobre algunas otras soluciones, MicroORMs parecidas como Dapper2, Simple.Data3 o Massive4; de las cuales espero poder hablarte más en próximas publicaciones.

1 http://www.toptensoftware.com/petapoco/

2 https://github.com/StackExchange/dapper-dot-net

3 https://github.com/markrendle/Simple.Data

4 https://github.com/FransBouma/Massive