Windows Azure Mobile Services

Windows Azure Mobile Services hace realmente fácil conectarse a un backend escalable en la nube desde nuestras aplicaciones clientes y móviles. Nos permite guardar datos estructurados en la nube que podemos usar en dispositivos, integrarlos con la autenticación, y enviar actualizaciones a clientes a través de notificaciones push.

Estas características las podemos tener disponibles en sólo unos minutos para nuestras aplicaciones de Windows 8, ofreciendo una forma superproductiva de implementar vuestras ideas de apps. También soportamos escenarios para Windows Phone, iOS y Android que veremos en otro post próximamente.

Leed este tutorial para ver cómo (en menos de 5 minutos) podemos crear una aplicación típica de “Todo List” usando Windows Azure Mobile Services. O ved este video en el que enseño paso a paso cómo hacerlo.

Empezando

Si aún no tenéis una cuenta de Windows Azure, podéis obtener una Free trial. Una vez que os logáis, clicad en la sección “preview features” debajo  del tab “account” de la web www.windowsazure.com y activad que vuestra cuenta soporte “Mobile Services”. Aquí podéis ver seguir las instrucciones para hacerlo.

Una vez que tengáis habilitado la sección de mobile services, logaos en el portal de Windows Azure, y clicad el botón “New” y elegid el icono “Mobile Services” para crear vuestro primer backend mobile. Una vez que lo tengáis creado, veréis una página de inicio rápido con instrucciones sobre cómo conectar vuestro servicio móvil a una aplicación Windows 8 en la que ya hayáis trabajado, o podréis incluso crear una aplicación nueva con la que empezarWindows Azure Mobile Services Portal

Leed este tutorial de iniciación para ver cómo podemos crear (en menos de 5 minutos) una aplicación de “To-do List” para Windows 8 que guarda los datos en Windows Azure.

Guardando datos en la nube

Guardar datos en la nube con Windows Azure Mobile Services es realmente sencillo. Cuando creamos un servicio móvil de Windows Azure, lo asociamos automáticamente a una base de datos SQL dentro de Windows Azure. El backend nos prepara todo lo necesario para poder guardar y obtener datos desde nuestras aplicaciones de manera segura (usando end-points REST que intercambian información en JSON) – sin tener que escribir ni desplegar ningún código en el servidor. También nos ofrece una interfaz de administración desde el que podemos crear tablas, ver los datos, establecer índices y controlar los permisos de acceso.

Diagrama Windows Azure Mobile Services

Esto hace que conectar nuestras aplicaciones con la nube sea realmente sencillo, y permite que los desarrolladores que no tengan un servidor con todo esto sean muy productivos desde el principio. Se pueden centrar en crear la experiencia de la aplicación, y dejar que Windows Azure Mobile Services ofrezca los servicios en la nube que necesiten.

Aquí tenéis un ejemplo de una aplicación cliente de Windows C#/XAML que obtiene datos de un Windows Azure Mobile Service. Los desarrolladores de aplicaciones C# pueden escribir consultas usando LINQ y objetos POCO, que se traducen a peticiones HTTP REST contra un Windows Azure Mobile Service. Los desarrolladores no tienen que escribir ni desplegar ningún código de servidor para poder ejecutar el código ni  obtener de manera asíncrona la información

Código de acceso a Windows Azure Mobile Services

Como Mobile Services es parte de Windows Azure, podemos ampliar más tarde la solución y añadir funcionalidad en el servidor para conseguir una lógica tan compleja como queramos. Esto no permite una flexibilidad máxima, y nos permite adaptar nuestras soluciones a cualquier necesidad que tengamos.

Autenticación de usuarios y notificaciones push.

Windows Azure Mobile Services hace que integrar la autenticación/autorización de usuarios y notificaciones push sea realmente sencillo. Podemos usar estas capacidades para permitir autenticar y tener un control muy fino del acceso a los datos que hemos guardado en la nube, así como lanzar notificaciones push a usuarios/dispositivos cuando cambian los datos. Windows Azure Mobile Services soporta el concepto de “scripts de servidor” (pequeños trozos de código script en el servidor que se ejecutan en respuesta a ciertas acciones) que hacen que estos escenarios sean super sencillos de habilitar.

Aquí tenéis unos tutoriales sobre autenticación/autorización/push que podemos hacer con Windows Azure Mobile Services en aplicaciones de Windows 8:

Administrando y monitorizando  nuestro Mobile Service

Como cualquier otro servicio en Windows Azure, podemos monitorizar el uso y las métricas del bakend de  nuestro servicio móvil usando el “Panel”  (Dashboard) desde el portal de Windows Azure:

Portal de Administración de Windows Azure Mobile Services

Este panel nos ofrece una vista de monitorización de las llamadas a la API, ancho de banda, y ciclos de CPU de nuestro servicio mobil. También podemos ver el tab de “Logs” para revisar los errores que se hayan podido producir. Esto hace muy sencillo monitorizar qué está haciendo nuestra aplicación.

Escala a medida que tu negocio crece

Windows Azure Mobile Services nos permite crear has 10 Mobile Services de manera gratuita, un entorno compartido  (en el que nuestro backend será una de las aplicaciones que se ejecutarán en una serie de servidores compartidos). Esto ofrece una forma fácil de comenzar proyectos sin coste alguno más allá que el de acceso a la base de datos (nota: cada cuenta trial de Windows Azure incluye 1GB de base de datos SQL que podemos usar con cualquier número de aplicaciones o servicio móvil)

Si tu aplicación se vuelve popular, podemos hacer clic en el tab “Scale” de nuestro servicio móvil y pasar de un modo “compartido” a uno “dedicado”. Con esto podemos aislar las aplicaciones, de manera que seremos el único cliente en una máquina virtual. Esto nos permite escalar la cantidad de recursos que nuestra App usa – permitiéndonos aumentar o disminuir nuestra capacidad a medida que el trafico crece:

Sección de Scale de Windows Azure

Con Windows Azure pagamos por capacidad de computación por hora – esto nos permite aumentar o disminuir los recursos disponibles para que se ajusten a lo que necesitamos. Permitiendo así un modelo super flexible e ideal para escenarios de aplicaciones móviles nuevas, así como para startups que están comenzando.

Resumen

Sólo hemos visto por encima todo lo que ofrece Windows Azure Mobile Services – hay un montón de características más.

Con Windows Azure Mobile Services podremos crear experiencias para aplicaciones móviles más rápido que nunca, y ofrecer una experiencia de usuario mucho mejores – conectando nuestras apps a la nube.

Visitad el centro de desarrollo de Windows Azure Mobile Services para aprender más, y crea tu primera aplicación de Windows 8 conectada a Azure hoy. Leed este tutorial sobre cómo podemos crear (en menos de cinco minutos) una aplicación “Todo list” conectada a la nube con Windows Azure Mobile Services.

Espero que sirva.

Scott

Artículo original.

Traducido por: Juan María Laó Ramos.

Usar la API de SkyDrive para Javascript en una página local

Hola a todos, hoy voy a hablaros sobre las API Live que tiene disponible Microsoft y que podemos usar desde nuestras aplicaciones c#, JavaScript, Objective-C y Java, pero además, también está disponible una versión Rest para todo lo que no entre en estos lenguajes.

Vamos a centrarnos en la API para SkyDrive y sobre cómo podemos configurarla para usarla en una web que estemos desarrollando en una máquina local.

El único requisito que necesitamos es definirnos una aplicación en el “Live Connect Developer Center“. Es necesario crearnos una nueva App en la sección “My Apps” para obtener un client Id que vamos a necesitar para poder usar la API.

Panel Live Connect

Si accedemos a la sección “SDK Interactivo” podemos irnos al primer ejemplo de la API de Sky Drive del  SDK Interactivo  y ver el código. El código que vamos a ver es código JavaScript, ya que no hay otra forma de verlo de manera interactiva en la web, pero en la documentación sí podemos ver cómo usarla desde C#, Objective-C, Rest y Java.


WL.init({ client_id: clientId, redirect_uri: redirectUri });

WL.login({ "scope": "wl.skydrive" }).then(
    function(response) {
        openFromSkyDrive();
    },
    function(response) {
        log("Failed to authenticate.");
    }
);

function openFromSkyDrive() {
    WL.fileDialog({
        mode: 'open',
        select: 'single'
    }).then(
        function(response) {
            log("The following file is being downloaded:");
            log("");

<pre><code>        var files = response.data.files;
        for (var i = 0; i &amp;lt; files.length; i++) {
            var file = files[i];
            log(file.name);
            WL.download({ &amp;quot;path&amp;quot;: file.id });
        }
    },
    function(errorResponse) {
        log(&amp;quot;WL.fileDialog errorResponse = &amp;quot; + JSON.stringify(errorResponse));
    }
);
</code></pre>

}

function log(message) {
    var child = document.createTextNode(message);
    var parent = document.getElementById('JsOutputDiv') || document.body;
    parent.appendChild(child);
    parent.appendChild(document.createElement(&quot;br&quot;));
}

Si ejecutamos este código se nos abrirá un selector de archivos que lo que nos va a permitir es seleccionar un archivo que tengamos en nuestro directorio de SkyDrive, logarnos si no lo estamos ya, y descargarlo. Este es sólo uno de los ejemplos que podemos probar, hay un montón en los que podemos ver cómo usarla para acceder al contenido, cómo recorrer los directorios, etc.

Sin embargo, y es el problema que quiero resolver y el motivo de este post, si usamos la librería JavaScript en una página web que estamos desarrollando, necesitamos hacer un “truco” para poder verlo funcionar en local.

Si os fijáis bien, en la primera línea de código:

WL.init({ client_id: clientId, redirect_uri: redirectUri });

Vemos, que primero tenemos que inicializar “algo” para poder usarla. Para configurarlo adecuadamente necesitaremos el “client id” que comentaba al principio del post y una “redirect_uri. Pues bien, esa uri es un dominio al que se van a redireccionar las peticiones de la API, que necesitamos configurar en el panel de Live Connect:

Configuración de la aplicación

Esa url debe ser de un dominio público y accesible por la api. Sin embargo, como estamos en desarrollo, nuestra web no está todavía disponible ni la tenemos desplegada en un servidor.

¿Qué podemos hacer?

La solución es bien sencilla, tan sólo tenemos que modificar nuestro etc\hosts para que el dominio que configuremos en el panel de control de Live Connect sea nuestra propia máquina. De esta manera la API funcionará perfectamente y podremos hacer nuestras pruebas en local antes de publicar nuestra aplicación en un servidor. Por ejemplo podemos definir en nuestro etc/host el dominio:  midominiodeprueba.com 127.0.0.1

Y en la página de configuración de la aplicación pondremos:

Confgurando el Dominio de redirección

A partir de este momento ya podemos usar la API sin tener que estar publicando en un servidor nuestra aplicación y haciendo pruebas en él.

Una vez que tengamos nuestra web lista para desplegar, sólo hay que modificar esos valores para que todo vaya como la seda :).

Juan María Laó Ramos

Mi opinión total y llanamente objetiva

Al principio se decía “¿Dónde está el botón de inicio?, ¿lo han quitado?, ¿pero esto que mierda es?” y muchas más cosas que, después de cuatro meses con Windows 8 como mi sistema operativo base, no puedo clasificar de otra manera como sandeces varias.

Logo Windows 8

El otro día hablábamos varios compañeros delante de una cerveza sobre este tema. Yo no soy persona que se le de bien pensar por sí sola, necesito diálogo, discusión y reflexión. No soy muy ducho en encerrarme en soledad y pensar. Con esto quiero decir que necesito esa interacción para poder crear un camino de pensamiento y encontrar conclusiones en el recorrido.

Y hablando el otro día, llegué a una conclusión que me resultó curiosa. Y es que, el parque informático va a cambiar y mucho. A partir de ahora los portátiles que hemos conocido van a dejar de existir. Todo fabricante que quiera seguir vendiendo, va a tener que pasar por el aro de Windows 8 y van a tener que estar compuestos de dos partes: una pantalla multitáctil y un teclado de quita y pon.

Pese a quien le pese, los tablets de hoy en día son juguetes con los que no se pueden hacer más cosas que leer el correo, mirar Facebook, twitter, jugar a algún juego y poco más. Pero con la nueva oleada de portátiles que está llegando, mucho me temo que Apple, Samsung y los fabricantes de tablets van a tener que reinventarse de nuevo o, claro está, cerrar.

De nuevo, pese a quien le pese, el mercado del pc y portátil tanto personal como profesional es territorio indiscutible de Microsoft. Y ojo, según hemos visto en las presentaciones de Windows 8, Surface y el Build, esto parece que va a seguir siendo así. No hay más que pasarse por los Fnac, Carrefours o MediaMarkt y ver el despliegue de medios y nuevos dispositivos que han preparado todos los fabricantes y contar cuántos portátiles hay en venta que no sean táctiles, y luego hay que contar aquellos a los que no se les puede quitar el teclado.

Sin duda, el que combine teclado y pantalla multitáctil separable, va a vender, el otro no. El razonamiento puede ser simple y bruto pero: ¿Quién va a comprarse un portátil táctil y luego un Tablet si puedo tener los beneficios de ambos? La respuesta a esa pregunta esta clara: Nadie.

Es por eso que me atrevo a decir que se va a producir una importante renovación de todo el parque informático mundial.

En el 2004 ya existían estos dispositivos, pero les faltaba una vuelta de tuerca más al sistema operativo de Redmond y al hardware. Esa vuelta de tuerca se ha dado con Windows 8 y de manera bastante usable. A mi me pasa con mi Samsung Galaxy Tab que intento cerrar una aplicación moviendo el dedo desde la parte de arriba de la pantalla hacia abajo al igual que a otro de los que estábamos en la mesa le pasa lo mismo con su iPad.

Con respecto al botón de inicio, sólo he de decir que ahora lo que hay es una pantalla de inicio (mucho más grande y “organizable” que un simple botón). La usabilidad de esa pantalla de inicio es simplemente genial, porque, ¿cuántas aplicaciones usamos regularmente al día, 4, 5, 6, 10? A mi me caben todas en la pantalla y sólo tengo que hacer un clic, ¡sólo un clic! Si eso no es usable, que alguien me diga cuál es la definición de usable.

Algunos dirán que les gustará más o menos, que se le podrá dar más cariño al diseño, pero en temas de gustos no se puede discutir, ni bajar del burro a nadie.

Con respecto a los pc’s de sobremesa ya me explayaré más adelante, ahora me voy a retirar e intentar pensar en soledad 😉

¿Qué opinión tienes tu?

Juan María Laó Ramos.