22 oct 2014

[Eventos] Prepara tu negocio para un mundo Multi-Plataforma con Visual Studio

He asistido esta semana al evento "Prepara tu negocio para un mundo Multi-Plataforma", evento patrocinado por Microsoft y en el que han participado ponentes del propio Microsoft, PlainConcepts, Kabel y TOKIOTA que han sido galardonados como partner revelación 2014.

Antes de comenzar indicar que el hashtag que se ha utilizado para el evento ha sido: #MSMobileDevSpain

El evento se ha desarrollado en cuatro sesiones que paso a comentar a continuación y en las que trato de haceros un breve resumen de los temas y conceptos que se han tratado en cada una de ellas.

#1 Sesión: Mobile Cross-Platform Development with Visual Studio (Michael Koester)

Sesión con la que comenzó el evento y que trataba de poner las bases sobre los conceptos de movilidad, diversidad y la importancia de la nube y de la conectividad de los elementos móviles con nuestro negocio
Diferentes aproximaciones del mundo multiplataforma
El fenómeno mobile tiene un mayor escalado que la explosión del uso de Pcs en los 80 o el uso actual de redes sociales
La diversidad en este mundo es la norma por lo que hay que tenerlo en cuenta a la hora de desarrollar aplicaciones (por tamaño, plataforma…)
El verdadero reto pasa por conectar toda la diversidad con el mundo del Back-End, los datos, la infraestructura…
Tres conceptos fundamentales a tener en cuenta: el cliente (mobile), el Back-End (cloud) y la forma en la que vamos a construir esas aplicaciones (agile)
Decisiones en el desarrollo, ¿Aplicaciones nativas o aplicaciones web?, y ¿Por qué no hibridas?
El dilema se plantea en formato gráfica entre una gran experiencia de usuario o una experiencia para el desarrollo (cómo el poder realizar despliegues más rápidos)
Microsoft aporta soluciones a través del uso de Xamarin y CORDOVA
The DevOps Cycle: Concepto que trata de unificar el desarrollo con las operaciones, tratando de evitar "guerras" del estilo: "tu código no funciona bien", "mi código funciona pero tu infraestructura no es buena"

mkoster@microsoft.com

#2 Sesión: Construyendo aplicaciones nativas multiplataforma con Xamarin (Pablo Peláez & Javier Cantón)

Para los que no sepáis de que va Xamarin, dejo el enlace a la web: Xamarin. La charla comenzó por parte del CEO de PlainConcepts, Pablo Peláez, hablando sobre la historia de Xamarin, cómo nacio el concepto, el producto y su tecnología. La charla se centró en la experiencia de PlainConcept con esta tecnología utilizando alguna demo para tratar de mostrar las capacidades de Xamarin

En Xamarin se trata básicamente de utilizar C# para realizar aplicaciones nativas en Android y IOS
Según la experiencia de PlainConcepts, a nivel de negocio es mejor desarrollar aplicaciones nativas con respecto al resto. Las aplicaciones hibridas por el hecho de estar embebidas son más lentas y suelen ser más caras en cuanto a tiempos de desarrollo, que las aplicaciones nativas. Las aplicaciones nativas se monetizan antes que con aquellas que son híbridas
Se hace referencia a GenyMotion (emulador android), mucho mejor que el que viene por defecto en Visual Studio para realizar emulaciones Android utilizando Xamarin
Se realiza una demo utilizando Xamarin y conectando con un servicio WCF (para seguir con el concepto de conectar la diversidad con nuestro Back-End). En primer lugar se crea una clase proxy que conecte con el servicio, para ello se realiza a través de la herramienta svcutil. La inicialización del servicio se realiza a mano y por código (endpoint, binding…)
Según PlainConcepts: La reutilización del código desarrollado es del 50% en proyectos medios. Hace que sea competitivo ya que se puede desplegar en múltiples plataformas de una manera más sencilla
Implementar PLC (Librerías portables para la reutilización de código) es una opción muy recomendable
MVVMCross para multiplataforma es ideal para aplicar el patrón MVVM
Xamarin tiene una curva de aprendizaje, alta
Una vez que la curva de aprendizaje no es un problema la productividad crece y genera equipos más competitivos
El licenciamiento es un pero a tener en cuenta debido a sus actuales costes
Xamarin Form aún está verde para algunas cuestiones de aplicaciones que vayan más allá de meras pruebas de concepto

jcanton@plainconcepts.com
pablo@plainconcepts.com

#3 Sesión: Aplicaciones escalables con Back-End en Windows Azure (Miguel Ángel Castejón)

Esta sesión trató de exponer las diferentes soluciones con las que cuenta Azure a la hora de implementar nuestras aplicaciones, haciendo foco en Windows Azure Web Sites y Mobile Web Services

Por orden de importancia y situación se tratan los conceptos de: Web Sites, Cloud Services, Virtual Machines, Mobile Services
Overview
Azure Web Sites (PaaS)
No configurable a bajo nivel
No hay acceso a máquinas ni se puede instalar nada
Es un servicio sobre el que desplegar web sites
SSL, Integración con DA
Azure Virtual Machines (IaaS)
Scripting para aprovisionamiento
Igual que máquinas virtuales on-premises pero en la nube
Tener máquinas para aprovisionar en desarrollo es una propuesta interesante
Azure Cloud Services (PaaS)
Acceso a máquina pero no administrables pues se puede perder la configuración
Algo más complejo que un web site pues admite cierta personalización
Windows Azure Web Sites
Infraestructura gestionada por Azure
Bajo coste
Sencilla y flexible
Demo de aprovisionamiento y despliegue de Windows Web Sites
Todas las acciones a realizar desde el portal se pueden realizar desde Visual Studio, posibilidad de despliegue desde Visual Studio y posibilidad de depuración del código subido a producción
Necesario el SDK de Azure
Cada Windows Azure Web Site tiene la posibilidad de definir varios slot que podrían emular los diferentes entornos (desarrollo, preproducción, producción…)
A través de SWAP se podría hacer la promoción de los entornos
Rollback a través de Deployment History
Mobile Web Services
Backend para aplicaciones móviles
Muy rápido y sencillo (poco configurable)
Basado en API REST
Data: Windows Azure SQL con Dynamic Schema (basado en análisis de las estructuras JSON que recibe)
Push Notifications: Envío de notificaciones de tipo Push a las apps

mascastejon@kabel.es

#4 Sesión: Cross Services for Cross-Platform Dev (Juan Bacardit)

Con esta sesión finalizó el evento, y a todos los presentes nos supo a poco, la ronda de preguntas fue extensa y es que los conceptos que se trataron fueron bastante atractivos y todos ellos aterrizados a través de pequeñas demos. Sin duda TOKIOTA tiene merecido el premio como partnert revelación.

Azure para la gestión de la configuración de aplicaciones bajo el paraguas de servicios de TFS
Team Member Desktop, Team Collaboration Environment, Pre-Production
Visual Studio Online
Nuevas características para Skateholders
Team rooms con notificación de eventos
Swaping de entornos
Builds

@juanbacardit