Azure Mobile Services con soporte para desarrollo en .NET

El pasado 20 de febrero el señor Scott Guthrie presentaba en su blog, como suele ser normal, las novedades incorporadas a la plataforma Azure. Y entre dichas novedades se colaba de rondón la nueva posibilidad de realizar nuestro backend en la nube con Azure Mobile Services, desarrollando este con .NET a parte de la opción actual de Node.js (JavaScript)

Esta característica es algo que los desarrolladores estábamos demandando desde hace bastante tiempo y la cual habían anunciado que estaría disponible pero que se resistía.

No es que la característica de tener un pedazo de soporte para backend en JavaScript fuera malo. Ni mucho menos. Pero poder desarrollar en .Net nos da una potencia y sobre todo una capacidad de depuración que hasta ahora no teníamos.

Entre tanto viaje, tanta charla y demás tampoco me ha dado tiempo a hincarle el diente a fondo a esta nueva característica. Tengo que decir que esta en modo preview y que por tanto puede que nos de algún que otro problemilla. Desde que salió, he debido crear unos 20 servicios de los cuales 3 no se han generado, mostrando un magnifico error 500 en el proceso de creación. Pero bueno como todo en modo preview, ya sabemos que tiene estas cosas.

Create

Otra cosa que está también un poquito a medias es la documentación sobre el servicio, disponible en el sitio de Azure. De momento es escasa, pero algo es algo.

Pero bueno vamos al lio. Una vez creado nuestro servicio e indicando que queremos que este sea con el backend en .Net podemos descargarnos una solución de ejemplo del mismo desde la pestaña inicial, para manejarla con nuestro Visual Studio. Tenemos que tener en cuenta que ahora Azure Mobile Services con soporte para .Net en esencia es un contenedor de soluciones ASP.Net Web API. Por lo que podremos combinar la potencia de este tipo de soluciones con la potencia que persé, nos proporciona el servicio.

Download Sample

Lo primero que llama la atención es que de momento este tipo de servicio solo tiene soporte para aplicaciones Windows Store, Windows Phone 8 e iOS. De momento nada de Android, Xamarin, etc….

Nada mas descargar el servicio demostración desde el portal, deberemos de cargar todas las referencias de los paquetes usados en dicha solución a través de Nuget.

Nuget

A primera vista podemos ver varias cosas. Por un lado, el servicio que nos podemos descargar de ejemplo es MVC5. Por otro lado las referencias especificas a Mobile Services son las librerías:

  • Microsoft.WindowsAzure.Mobile.Service.dll
  • Microsoft.WindowsAzure.Mobile.Service.Entity.dll
  • Microsoft.WindowsAzure.Mobile.Service.Tables.dll

Todas ellas en la versión 1.0.195 beta. Si quisiéramos instalarnos estas librerías desde Nuget, para añadirlas a un proyecto MVC, que queramos usar en Azure Mobile Services, deberemos de buscar por “WindowsAzure.MobileServices.BackEnd”.

Lo siguiente que podríamos hacer, para probar, es enlazar una aplicación Windows Phone por ejemplo con este servicio. Pero en este caso para poder depurarlo de forma correcta, la referencia al mismo se la debemos de indicar en nuestro propio localhost. Es decir en el momento de instanciar la clase estática MobileServiceClient, asignaremos la URL de nuestro servicio a nuestro localhost.

Deberemos de actualizar las librerías de enlace cliente con Mobile Services, concretamente la librería Microsoft.WindowsAzure.Mobile, dentro del paquete de Nuget WindowsAzure.MobileServices a la versión 1.1.4 del mismo día 20 de febrero.

Una vez realizada esta actualización podemos ver que la creación de la clase MobileServiceClient acepta un solo parámetro. En este caso la Url local.

Create MobileServiceClient
  1. public static MobileServiceClient MobileClient = new MobileServiceClient(«http://localhost:58960»);

El funcionamiento interno, dentro de nuestra aplicación cliente es mas o menos similar a cuando disponíamos del servicio con backend JavaScript. Pero como todo, existen variaciones y formas diferentes de realizar las cosas.

Para subir este servicio desarrollado en .Net a su correspondiente Mobile Service, basta con publicarlo a través del perfil de publicación que nos podemos descargar desde el portal de Azure.

Publish

Vamos como si de una Website hospedada en Azure se tratara. El funcionamiento es el mismo.

Scott Guthrie a “prometido” que en un futuro no muy lejano (no como la galaxia de StarWars 😉 dispondremos de herramientas especificas para trabajar con estos servicios, depurarlos y hacer mas cositas directamente desde el propio Visual Studio. Esperaremos a ver que nos proporcionan entonces los chicos de Azure.

En los próximos post, intentare mostrar que cosas han cambiado con respecto a esta nueva forma de generar nuestros backends en Mobile Services.

Nos vemos!!!

Windows Phone Spanish User Group: Azure Mobile Services

El otro día junto a mis compis del grupo hispano de Windows Phone y Quique, tuvimos un estupendo hangout sobre Azure Mobile Services y App Insight. Aquí os dejo todo el material que usamos. Mi presentación, el código de ejemplo que utilice y el video del hangout.

A disfrutarlo.

HangOut:

 

Presentación:

 

Código de ejemplo:

Skydrive Folder

 

Nos vemos!!!