sábado, 23 de julio de 2016

Introducción a EntityFramework Core

Como todos sabemos desde el año anterior Microsoft anunció una nueva versión del .Net Framework, llamado .Net Core, una versión del framework mucho más liviana y modular, diseñada para ser multiplataforma. Uno de los productos desarrollados a la par fue EntityFramework Core, una nueva versión del ORM de Microsoft mucho más liviana la cual incluye muchas de las características implementadas en EntityFramework 6.x la última versión estable de este ORM.


El pasado 27 de Junio fue anunciada por Microsoft la liberación de la primera versión estable del .Net Core Framework o .Net Core 1.0 y consigo la liberación de Asp.Net Core 1.0 y EntityFramework Core 1.0 liberación bastante esperada por todos debido al inicio de un nuevo Framework mucho más modular y multiplataforma.

EntityFramework Core, es una versión multiplataforma, mucho más liviana y optimizada para la nube, en trabajo conjunto con Asp.Net Core, además de esto está pensado para realizar mapeos con múltiples motores de base de datos relaciones, así mismo como bases de datos no relacionales, como DocumentDB,  Azure Table Storage y Redis por ejemplo, si bien aún no tenemos estos providers en la versión actual de EF Core, se espera que sea incluida en futuras versiones.

Entre algunas de las características ya disponibles en EF Core tenemos las siguientes:
  • Fluent Api
  • DataAnnotations
  • RelationShips
  • Shadow State Properties
  • ChangeTraking
  • Optimistic Concurrency
  • Async SaveChanges
Y algunas características importantes que aún no están disponibles pero que están Backlog:
  • Lazy loading
  • Creating model from DataBase with Wizard
  • Update Model From DataBase
  • Stored Procedure Mapping
  • Connection Resiliency
Si quieres observar el listado completo de características implementadas y características por implementar en EF Core, te invito a que observes su RoadMap en la siguiente página: EF Core RoadMap.

Otro tema importante a tener en cuenta es los proveedores de base de datos que actualmente soporta EntityFramework Core, que se mencionan a continuación:
  • Microsoft Sql Server
  • SQLite
  • Postgres
  • Sql Server Compact edition
  • InMemory
  • DevArt has paid providers for MySQL, Oracle, and many other databases
Para terminar les recomiendo tener presente algunos Issues conocidos de EntityFramework Core, que aún no se han solucionado y se deben tener en cuenta, los cuales puedes encontrar en el siguiente link: EntityFramework Core Known Issues

Es una gran noticia la liberación de .Net Core, Asp.Net Core y por supuesto EntityFramework Core, sin embargo es importante tener en cuenta que son tecnologías creadas desde inicio y no una evolución de las versiones full, dado esto son tecnologías que están en proceso de maduración y aún no cuentan con muchas características, por esto es importante documentarnos a la hora de usarlos para proyectos empresariales o productivos, en próximos artículos de esta serie de EF Core observaremos nuevas características y cambios importantes con respecto a la versión 6x

Y bueno amigos con esto damos por terminado este artículo de introducción a EntityFramework Core, espero les haya resultado interesante y de utilidad.

No olvides darle me gusta mi página en Facebook para mantenerte actualizado de lo que pasa en el Tavo.Net https://www.facebook.com/eltavo.net

Saludos y buena suerte!