Herramientas y Frameworks interesantes de programación - Parte 1 ORM
Tags: net, orm
Published: 2019-12-23 00:04:23

Este es mi primer post en esta página y voy a compartir algunos frameworks y herramientas que he utilizado o visto para programar. Puedes preguntarme acerca de .Net, pruebas automáticas, bases de datos. Puedo escribir una entrada acerca de algún tema de tu interés. Lo dividiré por categorías:

##Contenido##
- Frameworks ORM para .NET 
  * [Softluent](#Softluent)
  * [XPO](#XPO) 
  * [Entity Developer] (#EntityDeveloper)
- <a href="https://dev.to/apis3445/herramientas-y-frameworks-interesantes-de-programacion-parte-2-5doa"> ECommerce </a>
  * Nopcommerce
  * SimplCommerce
  * WooCommerce
  * Avored
  * Shopify
  * Kichink
- <a href="https://dev.to/apis3445/herramientas-y-frameworks-interesantes-de-programacion-parte-3-p34">Pruebas automáticas</a>
  * Pruebas unitarias
  * Specflow
  * Postman
  * Selenium
  * Cypress
  * Jest
  * Aplicaciones móviles
     * Xamarin.UITest
     * Visual Studio App Center
     * TestFlight


##Frameworks ORM para .NET##

Antes de utilizar EF Core, revise algunos ORM (Object-Relational Mapper), los cuales te ayudan a conectarte o crear tus bases de datos a partir de un objeto o viceversa. 

### Softluent <a name="Softluent"></a> ###

Uno que me pareció interesante fue [Softfluent Code Modeler](https://www.softfluent.com/product/codemodeler/) el cual se instala en Visual Studio y al parecer es desarrollado en 2005 por veteranos de Microsoft, es muy parecido a lo que es Entity Framework. 

Creas tus tablas de forma Visual y te genera los scripts para crear/modificar tu base de datos en SQL Server, MySQL y PostgreSQL, para poder hacer los selects, inserts o updates te crea stored procedures. También te crea el código en C# o Visual Basic para acceder a tus tablas. 

Además te permite escribir tus propios métodos con código CFQL (CodeFluent Query Language) el cual es parecido a SQL. Internamente se transforma a SQL Server, MySQL o PostgreSQL.  Por ejemplo:

```
LOAD(Title, Position)
WHERE Title = @Title AND Position = @Position
```

Esta consulta te permite seleccionar el título y posición recibidos como parámetros en la tabla en la cual agregas la función.

Cuando yo lo utilice daban códigos gratis por un año en la revista MSDN y luego tuvieron una versión gratuita que solo te generaba código para SQL, actualmente ya cambio de nombre a Code Modeler y la licencia cuesta $699 dólares por programador al año.

### XPO <a name="XPO"></a> ###


Es la opción de [Devexpress](https://www.devexpress.com/products/net/orm/) la cual es una compañía que ofrece componentes para .NET, tiene poco tiempo que cambiaron la suscripción y ahora es gratuita. Lo único que venden es el soporte el cual tiene un costo de $399.99 dólares al año.

Cuenta también con la opción de crear tus tablas de forma visual, y en sus blog indican que según sus [benchmarks](https://github.com/DevExpress/XPO/tree/master/Benchmarks) tiene mejor rendimiento que EF y EF Core. Debido a que no tiene tanto tiempo la versión gratuita no he tenido tiempo de descargarlo y realizar algunas pruebas. 

Mi experiencia con los componentes de .Net tanto para Winforms, WPF, Devextreme es que tienen buena calidad, buena documentación, solo el soporte me parece que a veces no es tan bueno, ya que a mi parecer a veces le faltan ejemplos complejos y es difícil que te den ejemplos de código, el tiempo de respuesta de bugs es regular. También creo que a veces algunos componentes como el generador de Reportes están un poco lentos si no cuentas con una computadora con un buen procesador y memoria. Creo vale la pena darle una revisada. 

Si deseas que haga una revisión mas a fondo puedes pedirla como comentario

### Entity Developer <a name="EntityDeveloper"></a> ###

Creado por [Devart](https://www.devart.com/entitydeveloper/), ofrece un editor visual para EF Core, el cual no ha sido incluid por parte de Microsoft, en EF Core tu tienes que crear tus clases, el DBContext y en base a eso te genera la base de datos, mas no te genera el diagrama visual de tu base de datos.

Incluye una versión gratuita Express y ediciones con costo de $99.95 hasta $299.95 dólares.

Este producto tampoco lo he probado, solo he probado el DB Forge for MySQL la versión gratuita, el cual me parece bastante bueno aunque algo limitado para backups.

Como verás hay varios ORM además del Entity Framework incluido en .Net. EF Core me ha parecido bien y funciona bien en Visual Studio for Mac, por lo cual no he tenido mucha oportunidad de probar los demás. 

Cree un curso donde explico mas a fondo EF Core y Servicios REST, pruebas automáticas, instalación, Azure Dev Ops en [EF Core y Servicios REST](https://abi.gitbook.io/net-core/)