domingo, septiembre 02, 2018

Como Iniciar a utilizar Code first en un Web API

Hola a tod@s!

Hoy voy a hablar de algo que no hacemos muy a menudo, si no al principio o al crear un nuevo proyecto.

Me refiero a utilizar code firts con Entity framework en proyectos de ASP.NET MVC o Web Forms, y también el los servicios REST que se generan al crear un servicio utilizando la plantilla de Web API desde Visual Studio.

No voy a mostrar como crear cualquiera de estos proyectos, asumo que ya cada uno sabe lo que hace cada tipo de plantilla, lo importante es como incorporar el manejo del patrón MVC y que partiendo de Modelos (Model) o clases de tipo Entity (entidad) podamos iniciar a utilizar Code First y todo lo que nos ofrece, como es crear las tablas en la base de datos de acuerdo a los modelos que vamos creando a manera de clases  de tipo modelo.

Para no ahondar en lo que es REST, ya que no es alcance de este articulo, diré que es un protocolo de servicios el cual de manera nativa ofrece o entrega sus datos en formato Json y hace el acceso al servicio mas sencillo ya que lo hace a través de url's y se mueve sobre el protocolo HTTP o sea hace uso de este protocolo, cosa que no hacen muy bien algunas otras tecnologías para crear servicios web.


Entonces desde nuestro IDE, o sea Visual Studio 2015 o 2013 ubicamos la ventana de Quick Launch en la parte superior derecha de la ventana.





Allí vamos a escribir pack, esto lanzara una ventana tipo menú para seleccionar de la lista la ventana que necesitamos, en nuestro caso, Package manager Console



La primera opción de la lista como lo podemos ver en la imagen anterior. ambien podemo observar que nos indica en que menú y submenú se encuentra, en la parte izquierda observamos View, Other Windows, Package Manager Console.

Al seleccionarlo se abrirá la consola para que podamos cargar nuget y otros paquetes a nuestra solución o proyecto de acuerdo a lo que necesitemos.

Lo anterior nos abre en la parte inferior de Visual Studio la ventana  consola.













Aquí también asumo que nuestro web.config del proyecto, ya tiene una cadena de conexión a nuestra base de datos en la cual se irán creando nuestra tablas a medida que vayamos creando los modelos necesarios para nuestro servicio o nuestra aplicación web.

Lo primero es activar las migraciones, esto es, todos los cambios que se van realizando para cada una de nuestra tablas en la base de datos.

Para esto escribimos el comando enable-migrations en la consola y presionamos enter esto tomara algunos minutos y luego mostrara los mensajes correspondientes como los de la imagen.



De esta manera podemos iniciar a trabajar de esta forma. La ejecución de este comando crea en nuestro proyecto una carpeta llamada Migrations con una clase en esta carpeta llamada Configuration.cs.

A continuación una imagen de como aparece en el Solution Explorer de Visual Studio:




Esta clase configura como se van a generar las diferentes migraciones de nuestra base de datos, que al final son los diferentes cambios que realizamos

Ahora en la consola vamos a ejecutar un nuevo comando para que se actualice nuestra base de datos de acuerdo, este comando es update-database, el cual envía las actualizaciones necesarias a la base de datos.










Al ejecutar esta instrucción nos aparece lo siguiente:


Esto quiere decir que la base de datos ha sido actualizada con los cambios que hemos realizado en los modelos de nuestro proyecto.