Crea una REST API con Web API y MySQL en Azure

Los servicios web son aplicaciones de software que son accedidos por medio de una URI. Existen distintos tipos de servicios web, los más conocidos son RESTful y SOAP, los cuales no son iguales y cada uno debería usarse en escenarios específicos para obtener una arquitectura más robusta acorde a lo que necesitemos. DZONE realiza una comparación entre ambos, la cual considero muy válida.

Los servicios RESTful han tenido una gran acogida por parte de los desarrolladores de aplicaciones móbiles y web, esto debido a que se pueden generar estructuras de datos muy flexibles ya que permite construirlas en notación JSON y su tamaño es mucho menor que la de los tradicionales web services que usan XML (Aunque si se requiere por medio de RESTful también los resultados pueden ser generados por XML).

ASP.NET ofrece un framework muy robusto y sencillo de implementar para crear poderosos servicios RESTFul llamado Web API. En esta ocasión vamos a crear una REST API con Web API y la implementaremos en Microsoft Azure con una cuenta de Dreamspark. El código fuente puede ser descargado desde Github; este repositorio cuenta con todo lo necesario para reproducir este demo. Es necesario que realices el post anterior para realizar este con éxito.

  1. Configuración del Proyecto: Al iniciar Visual Studio vamos al menú de File > New > Project. En la ventana que nos aparece seleccionamos en la parte izquierda templates > Visual C# > Web, luego en la parte derecha seleccionamos la opción ASP.NET Web Application. En la sección inferior pondremos un nombre al sitio proyecto. Una vez damos click en aceptar. Nos aparece una nueva ventana, en la cual seleccionaremos la opción Empty
    ws_world_7
  2. Instalación de dependencias: Es necesario que hayamos instalado las herramientas de conexión con MySQL que se explico en el post anterior. También es necesario instalar un par de componentes adicionales, los cuales los agregaremos por medio vamos instalar por medio NuGet Package. Necesitamos abrir la consola de NuGet package, para esto vamos al menú Tools > NuGet Package Manager > Packages Manager Console y este nos abrirá la consola de NuGet. A continuación ejecutaremos los siguientes comandos en la consola para instalar los paquetes necesarios:
    1. Install-Package Microsoft.AspNet.WebApi
    2. Install-Package MySql.Data.Entity.EF6
    3. Install-Package MySql.Data.Entity -Version 6.9.8
  3. Configurar enrutamiento: Es necesario crear ajustar la forma en que se resolveran las peticiones de url a nuestra API. Vamos agregar un directorio nuevo al proyecto que llamaremos App_Start, dentro de este directorio crearemos una clase llamada WebApiConfig. Luego editaremos el archivo Global.asax en el método Application_Start, allí se registrará el nuevo manejador de urls de nuestra API. En el archivo WebApiConfig se configura que las respuestas sean en formato JSON.
  4. Agregar modelo de datos: En este paso crearemos las clases necesarias para conectarnos a la base de datos, esto lo realizaremos con la ayuda de Entity Framework. Primero se debe agregar una carpeta que llamaremos Models, una vez creada vamos a presionar click derecho sobre la carpeta e iremos a la opción de agregar un nuevo item. Este nos abrirá una ventana modal y allí en el menú de la izquierda buscamos la opción llamada Data y luego buscaremos la opción ADO.NET Entity Model, en la sección de abajo pondremos el nombre de nuestro modelo.
  5. Configurar conexión a la base de datos: Una vez hemos agregado el archivo de ADO.NET Entity Framework este nos abrirá una ventana en la cual seleccionaremos la primera opción (EF Designer from database) y presionamos Next. En la nueva ventana seleccionaremos la opción de MySQL database y presionamos siguiente. En la siguiente ventana que nos aparece ingresamos los datos de conexión a nuestra base de datos en Azure (revisar el post anterior). Para saber que al final ha quedado bien configurado, debería revisar que en el archivo de configuración Web.config quede similar al del ejemplo.
    ws_world_12
      ws_world_8
  6. Creación de consultas a la base de datos: Dentro de la carpeta Models, adicionaremos una nueva carpeta llamada Repositories y dentro de ella agregaremos dos clases nuevas RepositoryCity.cs y RepositoryCountry.cs. Estas clases tienen las consultas hacia la base de datos.
  7. Creación de contratos: Los contratos son los objetos que retornaremos a los clientes del servicio. No se recomienda retornar los mismos objetos que traemos directamente de la base de datos, sino retornar los datos que son necesarios únicamente (otras developers los llaman EndPoints). Para esto creamos una carpeta llamada Contracts y dentro de ella agregamos los archivos CityContracts.cs y CountryContracts.cs.
  8. Agregar controladora: En esta sección agregaremos los archivos que se encargarán de procesar las peticiones que se realizan los clientes al servicio web. Para esto crearemos una carpeta llamada Controllers y agregaremos dos clases: CityController.cs y CountryController.cs.
  9. Creación de servicio en Azure: Una vez en este punto ya tenemos listo nuestro Web Service listo para ser puesto online. En la consola de administración de Microsoft Azure vamos a la sección Web + Mobile y seleccionamos la opción Web App. Ya debemos configurar el servicio cómo se muestra en la siguiente imagen: 
    ws_world_10
  10. Publicación de servicio: Una vez creado el servicio en Azure, volvemos al proyecto en Visual Studio y presionamos click derecho sobre el nombre del proyecto, luego presionamos en la opción publicar. Este nos abrira una ventana y allí seleccionaremos la opción Microsoft Azure Web Apps, luego nos logueamos con nuestra de cuenta de Azure y seleccionamos el servicio que creamos en el paso anterior. Presionamos en el boton publish. 
    ws_world_13

Al finalizar la publicación este abrirá una ventana de un navegador con el servicio disponible. Felicitaciones!!! ya has creado un web service disponible para ser consumido.

Nota: Si presentas problemas con la conexión hacia MySQL puedes revisar los siguientes links:

https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html

http://forums.mysql.com/read.php?174,601264,601264

https://msdn.microsoft.com/en-us/data/jj730568?f=255&MSPPError=-2147217396

 

Crea una Base de Datos MySQL en Azure

Las bases de datos son el centro de toda aplicación. Su importancia radica en que todos los esfuerzos se deben en concentrar la mayor cantidad de datos posibles para luego generar información. No existe información sin datos y la mejor forma de almacenarlos es mediante un Motor de Base de datos que permita organizarlos en estructuras que sean fácilmente accesibles.

Para este tutorial vamos a crear una base de datos MySQL usando el servicio ofrecido por Microsoft Azure en su modalidad PaaS. Este motor de base de datos ofrece gran robustez y es muy usado para  modelos relacionales, también cabe decir que es Open Source y Oracle es la compañía dueña de este producto.

La base de datos que usaremos es una de ejemplo que ofrece MySQL en su sitio web llamada World Database, sin embargo este script requiere unas modificaciones para correrse en Azure, en Github he creado un repositorio que ya tiene listo el script para ejecutarlo.

ws_world_4

Este post es una guía para la creación de una base de datos en Microsoft Azure con una cuenta de Dreamspark.

  1. Creación del Servicio: El servicio se encuentra en el catálogo de servicios de Azure en la ruta Data + Storage / MySQL Database
  2. Configuración del servicio: El servicio requiere que se le de un nombre a la base de datos, luego seleccionamos la suscripción de Dreamspark. Esta opción solamente nos permite escoger un servidor compartido. Debemos asociar el grupo de recursos en el cual lo administraremos y la ubicación del servicio. Posteriormente debemos seleccionar el plan que queremos para nuestro servicio y aceptar los términos y condiciones. Una vez hecho esto podremos presionar en el botón crear.
    ws_world_1
  3. Datos de conexión: Ya hemos creado el servicio necesitaremos obtener los datos para conectarnos a la base de datos, para esto accedemos a la sección de monitoreo del servicio y vamos a la opción Properties, una vez allí tomamos los datos Hostname, Port, Username y Password.
    ws_world_2
  4. Instalación de herramientas: Necesitamos un sistema para administrar la base de datos y poder correr los scripts. La mejor opción que conozco para administrar base de datos MySQL es Workbench, sin embargo MySQL nos provee una aplicación llamada MySQL installer, esta opción permite gestionar el software relacionado con MySQL. Una vez se instala es gestionador de paquetes, instalaremos los siguientes componentes (los últimos dos los necesitaremos para próximos post):
    1. MySQL Workbench
    2. Connector / NET
    3. MySQL for visual studio
      ws_world_3
  5. Conexión al servicio de Azure desde Workbench: Una vez instalado Workbench es necesario ejecutarlo y desde allí seleccionamos la opción de agregar una nueva conexión. Esta nos abrirá una ventana donde debemos colocar los datos de conexión que obtuvimos previamente.
    ws_world_5
  6. Ejecutar script: Ya nos hemos logrado conectar a la base de datos de MySQL desde nuestro PC, ahora vamos a crear la estructura y llenar esta con algunos registros. Podemos abrir el script que la base de datos que descargamos anteriormente y presionamos el botón del trueno. En este momento el script se empezará a ejecutar en el servidor.
    ws_world_6

¡Enhorabuena! ya está tienes lista tu base de datos para realizar consultas

Crea tu página web con Drupal en Microsoft Azure

Drupal es uno de los más robustos CMS Open Source que existen en el mercado. Muchas compañías dedicadas en la creación de contenido han seleccionado esta potente herramienta por su gran cantidad de características embebidas, también es uno de los CMS más seguros, ya que por ser un proyecto Open Source la comunidad constantemente está fortaleciendo sus módulos y mejorandolos.

Este post es una guía para la creación de un sitio web con Drupal en Microsoft Azure con una cuenta de Dreamspark.

  1. Instalación de Drupal: Se debe buscar el servicio de Drupal al interior de Azure. 
    drupal_2
  2. Configuración del servicio: En esta sección se configura la url del sitio web (App Name), el tipo de suscripción (en nuestro caso es Dreamspark), el grupo de recursos y el plan de servicios (Revisar el post anterior).
    drupal_3
  3. Configuración de la base de datos: En la opción de la base de datos se debe seleccionar la opción «Crear nueva», una vez allí configuramos la instancia del servicio de base de datos, para la cual debemos asignar el nombre de la base de datos, la ubicación y el precio. Para poder terminar con la creación de la base de datos se deben aceptar los términos legales.  
    drupal_4
  4. Una vez configurado todos los parámetros de los servicios se acepta la creación del servicio. Este tomará unos minutos en finalizar su creación.
  5. Estado del servicio: Una vez terminada la creación del servicio lo podremos visualizar en el escritorio de los servicios de Microsoft Azure. Para visualizar el estado del servicio damos click en el nombre del servicio, este desplegará la configuración, allí podemos ver la url del sitio web. Más adelante vamos a necesitar la información para conectarnos al sitio web por FTP y los datos de conexión a la base de datos, entonces debemos descargar estos datos de la opción «Get publish profile». 
    drupal_8
  6. Instalación de Drupal: Ya se ha configurado un sitio web listo para la instalación. En esta sección se empieza la sección de instalación de Drupal, para lo cual seleccionamos el idioma en el cual estará nuestra instalación de Drupal, una vez allí presionamos «Save and continue».
    drupal_6
  7. Descarga de Idioma: Debemos descargar el fichero de las traducciones desde el sitio oficial de Drupal. En este sitio buscamos el idioma y la versión de Drupal para la descarga 
    drupal_7
  8. Configuración de FTP: Para subir el archivo de traducción debemos realizar una conexión FTP, para poder realizar esta conexión tomaremos los datos de servidor, usuario y password del archivo  «publish profile». Para la conexión FTP pueden usar un cliente como WinSCP
    drupal_9
  9. Transferencia de Traducción al servidor: Una vez conectado con el servidor FTP donde esta nuestro sitio web, debemos ir al directorio /site/wwwroot/sites/default/files/translation del lado del servidor. Una vez allí debemos transferir el archivo .po en esta ruta. 
    drupal_10
  10. Instalación de Drupal: En este momento ya hemos instalado la traducción del sitio, por lo cual debemos volver a la url del sitio web y recargamos la página pulsando «F5», ya aquí veremos los cambios en el sitio web. La interfaz de instalación nos muestra dos opciones de instalación, en este parte seleccionaremos la opción «Estándar». 
    drupal_11
  11. Configuración de conexión con la base de datos: En es momento vamos a configurar dónde se conectará nuestra instancia de Drupal para almacenar la información. Para obtener los datos los debemos sacar del mismo archivo de donde obtuvimos los datos de conexión para el FTP, es decir, del archivo «publish profile». 
    drupal_12
  12. Configuración del sitio: En este momento ya ha terminado el proceso de instalación de la instancia de Drupal, ahora lo único que queda es parámetrizar el sitio web con los valores que consideremos correctos. 
    drupal_15
  13. Felicitaciones !!! Ya tienes tu sitio web con Drupal.
    drupal_17

Crea tu página web con wordpress en Microsoft Azure

Microsoft Azure es el conjunto de servicios de cloud computing ofrecidos por esta compañía. Las web apps son servicios especializados para crear desplegar sitios web, con gran capacidad para escalar cuando estos lo requieren.

WordPress es un Sistema de Gestión de Contenido (CMS por sus siglas en ingles, Content Management System) de código abierto. Este CMS ha tenido gran acogida entre la comunidad de desarrolladores web, ya que este permite la creación de sitios web, blogs o aplicaciones de manera muy sencilla. Esta herramienta permite la personalización de sitios web y la creación de módulos, permitiendo potenciar estos.

En este post se guiará al lector en la creación de un sitio web con WordPress usando el servicio de Web app de Microsoft Azure con una cuenta de Dreamspark.

  1. Creación de grupo de recursos: Todos los servicios que se desplieguen en Microsoft Azure deben estar asociados a un grupo, lo que permite una fácil administración de todos los servicios.
    webapp_azure_1
  2. Instalación de Wordpress: Es necesario buscar el servicio de WordPress dentro azure, para lo cual usamos la opción disponible.
    webapp_azure_3
  3. Configuración de web app: En esta sección configuramos la url del sitio web, cabe resaltar que el nombre que pongamos allí sera un subdominio de «azurewebsites.net», por lo cual no todos los nombres estan disponibles. Lo siguiente que debemos hacer es seleccionar la suscripción a la cual asociaremos el portal. Posteriormente seleccionamos el grupo de recursos, lo ideal es seleccionar el que creamos en el paso 1, sin embargo, podemos crear uno nuevo.
    webapp_azure_6
  4. Plan de servicio: En el plan de servicio se selecciona el tipo de infraestructura que se va usar para el servicio, esta infraestructura lleva asociada un cargo. Para nuestro caso vamos a usar una infraestructura compartida, la cual no va a generar cargos.
    webapp_azure_7
  5. Instalación de base de datos: WordPress requiere un motor de base de datos. Lo primero que debemos hacer es colocar un nombre a la base de datos. Luego debemos seleccionar el tipo de base de datos, para nuestro caso usaremos «compartida» (Shared); este tipo de base de datos quiere decir que usaremos una instancia de servidor que contiene varias bases de datos, pero no debemos preocuparnos, ya que azure se asegurara que nadie más pueda acceder a la nuestra. La ubicación indica en donde se encuentra físicamente el servidor. Por último debemos seleccionar en la franja de precio la que vamos a usar.
    webapp_azure_8
  6. Creación de instancia: Ya habiendo realizado los pasos anteriores, no queda sino aceptar los términos legales y continuar a la creación de la instancia. La creación de la instancia tomará pocos minutos. Una vez hecho esto ¡FELICITACIONES! ya tienes disponible tu propio sitio web con Microsoft Azure.
    webapp_azure_9
  7. Detalles de aplicación: En esta sección se observa como ha quedado configurada nuestra instancia de servidor para el portal web. Aquí podemos controlar el estado del servidor, ver la url del sitio web, datos de conexión vía ftp y otras configuraciones las cuales podemos manipular para personalizar el sitio web.
    webapp_azure_10
  8. Configuración de página web en wordpress: En este momento falta configurar la instancia de wordpress, para eso debemos acceder a nuestra url. Una vez allí veremos nuestro sitio web.
    webapp_azure_11
  9. Parámetros iniciales: En esta sección configuramos el titulo de nuestro sitio web, el usuario, la clave y el correo del usuario administrador del sitio web.
    webapp_azure_12
  10. ¡Enhorabuena! ya está listo nuestro sitio para que lo empecemos a llenar nuestro con contenido.
    webapp_azure_13