Wilson Vargas
Wilson Vargas

Un programador enamorado de su código.

Wilson Vargas
Author

Un chico con una gran experiencia en el arte del desarrollo software. Desarrollador de aplicaciones de móviles, especialista en ASP.Net, Xamarin y tecnologías de computo en la Nube en especial Azure.

Share


Suscribete


Mantente al tanto de mis nuevos artículos

Tags


Featured on Planet Xamarin badge

Twitter


Cómo crear tus entornos de Desarrollo y Produción con Azure Mobile Service

Wilson VargasWilson Vargas

Este artículo tiene el objetivo de mostrar cómo crear un entorno de desarrollo y otro producción en Azure Mobile Service con el backend en .NET.

Según la documentación de MSDN
Azure Mobile Services es un servicio de Azure diseñado para hacer más fácil la creación de aplicaciones móviles altamente funcionales utilizando tecnologías de cómputo en la nube. El servicio de Mobile Service reúne un conjunto de servicios de Azure que permite crear la infraestructura de back-end para tus aplicaciones. Mobile Services proporciona las siguientes características de back-end:

  • Bibliotecas cliente que apoyan el desarrollo de aplicaciones móviles en varios dispositivos, incluyendo Windows 10, Windows Phone 8.1, iPhone, iPad y Android.
  • Gestión de tablas para almacenar datos de aplicaciones.
  • Integración con servicios de notificaciones push para tu aplicación.
  • Integración con proveedores de identidad conocidos.
  • Control preciso de autorizar el acceso a las tablas.
  • Soporta scripts para inyectar la lógica de negocio en las operaciones de acceso a datos.
  • Integración con otros servicios en la nube.
  • Soporta la capacidad de escalar una instancia de servicio móvil.
  • Servicio de vigilancia y registro.

De esta manera, Azure Mobile Services aumenta el desarrollo de aplicaciones móviles y el hecho de que esté disponible para cualquier plataforma es su principal ventaja.

En algunos escenarios el control de un entorno de producción y otro de desarrollo te puede ser de utilidad. Te pongo un ejemplo: Cuando hay que agregar nuevas características a tus aplicaciones que ya están publicadas en alguna tienda y estas están siendo utilizadas por los usuarios, el cambio de entorno de tu servicio móvil puede ser necesarios en este caso, debido a que cada versión puede cambiar o incluso arruinar la última versión de tu back-end, por eso es importante probar y mantener el funcionamiento de tu entorno de producción teniendo uno de desarrollo o de pruebas. Azure Mobile Service permite poner a prueba tus servicios en localhost, pero no proporciona una manera de tener diferentes entornos, si es que tal vez nosotros quisiéramos tener un servicio móvil para cada entorno y luego crear una configuración específica para cada uno.

Descripción

Para crear un entorno de desarrollo y producción utilizando el back-end en .Net tienes que crear dos servicios móviles uno Dev y Prod y luego crear los perfiles para cada uno de los entornos basados en archivos de transformación.
Veámoslo con más detalle:

Creación de los servicios móviles Azure

En panel de administración de Azure, crea dos servicios móviles con el back-end en .Net, y nómbralos así:

  • Para el entorno de desarrollo:
    • Nombre del servicio móvil: MyAMSDev
    • Nombre de la base de datos: MyAMSDev_db
  • Para el entorno de producción:
    • Nombre del servicio móvil: MyAMSProd
    • Nombre de la base de datos: MyAMSProd_db

En tu panel de administración de Azure, el resultado será:

Y tu base de datos de la siguiente manera:

Es posible utilizar la misma base de datos, pero para ello es necesario utilizar diferentes esquemas, por lo contrario, si se proporcionan diferentes bases de datos es más fácil administrar cada entorno (actualizarlo o incluso eliminarlo). Un back-end que utiliza migraciones Entity Framework volverá a crear el servicio desde los scrats y con ello en cualquier momento puede ser eliminado, desplegado y recreado.

Para leer más acerca de los pasos necesarios para crear un servicio móvil, lee el siguiente artículo
Introducción a Servicios móviles

Creando el archivo de transformación

En Visual Studio, selecciona tu solución y abre el menú contextual de la siguiente manera

Después, haz clic en Administrador de configuración

Y a continuación, crea una nueva configuración de la siguiente manera

En este caso, la configuración Dev se define basándose en la configuración de depuración y para la configuración Prod debe utilizarse la configuración de lanzamiento:

Ahora, es posible definir configuraciones de lanzamiento, depuración, Dev y Prod

Para cada configuración es posible definir una sentencia condicional de compilación. Por ejemplo, en el entorno Dev es posible tener

En realidad lo que quiero decir es que podemos hacer

#if Dev 
	// Por ejemplo, puede llenar la base de datos con datos falsos
#else
    // En otro entorno diferente a Dev
#endif

Para tener ventajas de esta configuración utilizando el Web.Config, vamos a añadir una configuración transformación

Y este será el resultado

Ahora es posible

  • Asignar al web.config la cadena de conexión a la base de datos local, utilizado por el localhost

  • Asignar al Web.Dev.Config, la cadena de conexión a la base de datos MyAMSDev_db, utilizada para el entorno Dev (o incluso el localhost!)

  • Asignar al Web.Prod.Config, la cadena de conexión a la base de datos MyAMSProd_db, utilizada para el entorno Prod

Y cada vez que despliegues tu proyecto utilizará las respectivas configuraciones.

Vamos a publicar el servicio a Azure.
Selecciona el proyecto y utiliza el botón Publicar del menú contextual:

A continuación, vamos a conectar nuestros entornos a nuestros servicios móviles, utilizando nuestra cuenta Azure, y seleccionando el MyAMSDev

En Ajustes, establece la configuración y el archivo de las opciones de publicación.

Y luego publícalo!

Realiza el mismo proceso para el entorno Prod

Y luego publícalo!

Desde ahora, tanto el entorno de desarrollo y de producción están publicados y no se requerirá definir o cambiar cada entorno en el futuro, sólo es necesario prestar atención al momento de desplegar la solución.

Notas

  • En este caso utilicé el nombre MS_TableConnectionString para definir la cadena de conexión, este es el valor predeterminado.

Conclusión

En conclusión, la creación de diferentes entornos para un servicio móvil con back-end en .NET es una tarea fácil y es una ventaja al momento del desarrollo de una aplicación, en él se pueden probar nuevas características antes de que pasen a producción y permitan asegurarse de que las pruebas realizadas en localhost sigan funcionando en el servicio móvil en Azure sin afectar el entorno de producción. Estoy seguro de que les va a servir de mucho, nos leemos pronto!

Un chico con una gran experiencia en el arte del desarrollo software. Desarrollador de aplicaciones de móviles, especialista en ASP.Net, Xamarin y tecnologías de computo en la Nube en especial Azure.

Comentarios