clip_image002En Diez Software hemos pasado los últimos meses trabajando en una nueva versión de nuestra suite de aplicaciones de gestión empresarial, especialmente adaptada a Windows 8 en forma de aplicaciones Metro.

El proceso general nos ha llevado a migrar nuestro backend, que hasta ahora se encontraba en servidores dedicados y a utilizar una arquitectura DDD, usando tecnología WCF para crear los servicios y Windows Azure como plataforma para obtener la máxima disponibilidad.

En particular nos hemos centrado en portar nuestra aplicación de contabilidad al nuevo paradigma Metro. El martes acudimos a nuestra cita con el Excellence Lab de Microsoft y estamos muy orgullosos de poder decir que pasamos el test y que ya contamos con nuestro Token aprobado para poder enviarla a la Store de Windows 8.

Una parte muy importante de la creación de una suite tan extensa como la nuestra, es escoger una plataforma que nos permita desarrollar rápida y eficientemente. En este sentido hemos optado por usar C# + XAML, aplicando un patrón MVVM, aislando nuestras ViewModels de dependencias propias de la plataforma como pueden ser el acceso al hardware, o acceso a servicios WCF mediante el uso de servicios. Así mismo este patrón nos ha permitido realizar un testeo unitario de nuestro código de forma sencilla y efectiva, asegurando la calidad del mismo y evitando regresiones y otros problemas comunes en el desarrollo.

Microsoft nos pone a disposición una completa documentación sobre el desarrollo y sobre las guías de diseño a seguir y tener en cuenta a la hora de realizar una aplicación metro. En (http://msdn.microsoft.com/library/windows/apps) se puede encontrar multitud de documentación y guías para poder superar la certificación de una aplicación para Windows 8, ya que tenemos que tener en cuenta siempre y seguir al pie de la letra las directrices que nos marcan. Fundamental también ha sido el poder contar con la documentación que Josué Yeray a través de su blog en español sobre Windows Phone y Windows 8, proporciona. Realmente acceder a (http://www.geeks.ms/blogs/jyeray) leer y estudiar bien sus artículos nos ahorró muchos problemas y quebraderos de cabeza.

Existen muchos puntos a tener en cuenta a la hora de crear una aplicación metro, pero dos de ellos quizás por su sencillez aparente, se nos pueden pasar por alto. Uno de ellos es la gestión de la conectividad, puesto que podemos estar usando un dispositivo que pierda la conexión, de forma más normal que lo puede hacer actualmente un PC al que estábamos acostumbrados. Para controlar esto disponemos de un evento, NetworkStatusChanged dentro de la clase NetworkInformation, que nos permitirá comprobar si disponemos o no de internet:

image

El segundo punto importante es reaccionar a los cambios en la orientación y el tamaño que ocupa nuestra aplicación en pantalla. En Windows 8 tenemos cuatro modos: Snapped, ocupando un borde de la pantalla, Filled, ocupando el espacio que otra aplicación en snapped ha dejado libre, Landscape, en horizontal, o Portrait, en vertical. Podemos controlar estos modos mediante un grupo de estados visuales que podemos añadir a nuestra pantalla para, dependiendo del modo en el que nos encontremos, modificar propiedades de nuestro Xaml mediante animaciones y ajustar los elementos mostrados:

image

Una vez creados nuestros estados y las animaciones que responden a ellos, nuestra página solo tiene que informarnos de que se ha cambiado el estado:

image

 

Captura2

Modo Portrait

Captura3

Modo Landscape

clip_image008

Modo Snapped

Como os comento estos dos puntos son algo muy importante a tener en cuenta a la hora de desarrollar cualquier aplicación metro para Windows 8 y son puntos que los certificadores os miraran con lupa a la hora de pasar esos controles en el momento que se pueda acceder a la Windows Store de forma general.

Rafael Serna Medina.

Dpto. Desarrollo en Diez Software de Gestión.

Blog: www.geeks.ms/blogs/rserna

Twitter: @rafasermed