El pasado 05 y 06 de Octubre, en el Palacio Municial de Congresos de Madrid tenía lugar el Microsoft tech Summit 2016, un evento donde se daban cita clientes, partners y desarrolladores de tecnologías Microsoft.
Con 10 Tracks organizados en diferentes categorías, varias deceneas de sesiones, un par de talleres y cientos de asistentes, un gran evento donde volver a ver a grandes amigos, conocer a otros nuevos, compartir y aprender mucho.
A continuación, una pequeña galería con algunos momentos del evento:
El material
Pude participar en el evento con una sesión en el track de Mobile Apps & Cross-Platform junto a un taller.
En la sesión me centré en dar a conocer todas las implicaciones y conceptos necesarios para desarrollar una aplicación UWP para Xbox One. Aspectos como la gestión del Gamepad, sonido o la adaptación a TV además de cómo adaptar la UI, sacar partido con efectos visuales y elementos 3D.
La presentación utilizada la tenéis disponible a continuación:
Realizamos paso a paso desde cero una aplicación meteorológica realizada con Xamarin.Forms y utilizando MVVM. Muy divertido!
Me gustaría terminar agradeciendo a Microsoft, sponsors, ponentes y asistentes por hacer el posible el evento. Ante la cantidad y calidad de sesiones, el networking, sorpresas, concursos y grandes momentos, no puedo terminar de otra forma que no sea…
Windows 10 ha llegado como la culminación en el viaje hacia la convergencia en el desarrollo entre plataformas Windows. Ahora hablamos de Apps Universales escritas una única vez con un código común tanto para la lógica de negocio como para la interfaz de usuario. Además, generamos un único paquete que mantendrá una interfaz consistente y familiar para el usuario pero adaptada a cada plataforma.
Podemos crear apps que funcionen en todo tipo de dispositivos como teléfonos, tabletas, portátiles, dispositivos IoT, Surface Hub e incluso Xbox One. Para ello tenemos las vías utilizadas hasta este momento, es decir, utilizando C# y XAML (o VB, C++, etc).
Ahora con la posibilidad no solo de desarrollar aplicaciones UWP para Xbox One sino además con la posibilidad de publicar la misma en la tienda, se convierte en una nueva vía llena de posibilidades.
Entre el conjunto de aplicaciones de interés para la plataforma, existen algunas categorías con especial peso como por ejemplo, las aplicaciones multimedia. Contenido en directo, bajo demanda o compartir contenido multimedia a nivel social son opciones habituales hoy día y con gran interés en una Xbox One conectada a una gran pantalla.
Te lanzas manos a la obra, con contenido adaptativo PlayReady utilizando un MediaElement y Microsoft Universal Smooth Streaming Client SDK, todo funciona correctamente pero a la hora de reproducir en la Xbox One…
MEDIA_ERR_SRC_NOT_SUPPORTED – 0x80070005
¿Qué ocurre?.
La clave, entrada en el archivo de manifiesto
Tranquilo, no estas haciendo nada incorrecto, para reproducir contenido PlayReady DRM en una aplicación UWP en Xbox One se requiere una DeviceCapability específica en el manifiesto.
Haz clic derecho sobre el archivo Package.appxmanifiest. Selecciona la opción abrir con editor XML. Dentro del conjunto de Capabilities debes añadir:
El pasado 09 de Agosto, desde el grupo XDev en Madrid, se organizaba un evento veraniego centrado en desarrollo móvil multiplataforma, con temas como convertir aplicaciones de iOS a UWP o extender Xamarin.Forms, además de tener momentos para el networking y algun que otro detalle con los asistentes.
El material
Pude participar en el evento con dos sesiones.
En la primera de ellos, nos centramos en el Windows Bridge para iOS, WinObjC. Convertimos algunas aplicaciones iOS a UWP e incluso vimos como añadir características específicas de la plataforma Windows como el uso de Live Tiles.
En la segunda sesión, nos centramos en como extender Xamarin.Forms para poder acceder a características específicas de cada plataforma, crear nuevos controles o efectos con el objetivo de ofrecer la mejor experiencia posible en cada plataforma, aun compartiendo gran parte de la interfaz de usuario.
En cuanto a las demos técnicas realizadas, las tenéis disponible en GitHub:
Quisiera terminar añadiendo algunos agradecimientos. Gracias a todos los asistentes por asistir además de la constante participación con preguntas, en estas fechas y con tan poca antelación en el anuncio del evento es destacable; gracias a Dachi Gogotchuri por toda la ayuda en la organización y gracias a Liferay por sus increíbles instalaciones cediéndonos una sala. Nos vemos en la próxima!
Llegar a Windows es mucho más sencillo que nunca. Si tienes una web, si tienes una App en iOS e incluso si partes de una App Win32, existen nuevas opciones destinadas a facilitar la llegada de esas Apps a Windows de la forma más sencilla posible. Si, hablamos de los Bridges presentados en el //BUILD del año 2015.
Un año después, en el marco del //BUILD 2016 se ha profundizado, conocido e incluso tenemos acceso a Project Centennial renombrado como Desktop App Converter, destinado a convertir Apps basadas en .NET y Win32 como Apps UWP. Además, permite el acceso a servicios o APIs UWP.
¿Quieres saber más el respecto?
En este artículo vamos a convertir una App Win32 a UWP utilizando Desktop App Converter paso a paso, desde la instalación de la herramienta hasta tener el paquete preparado, firmado y listo para distribución.
¿Qué es Desktop App Converter?
Herramienta disponible (pre-release) que nos permite llevar las aplicaciones de escritorio NET 4.6.1 o Win32 a la plataforma universal Windows (UWP). Basado en una línea de comandos, que se puede ejecutar de forma desatendida o silenciosa, crea un paquete appx que puede ser instalado mediante el comando Add-AppxPackage de PowerShell.
El convertidor utiliza una imagen limpia del sistema (disponible junto al convertidor) para utilizar una versión totalmente limpia del mismo y capturar cualquier entrada de registro, rutas de archivos, etc. y empaquetarlo todo en un paquete appx con su archivo de manifiesto correspondiente.
Las principales características son:
Permite convertir Apps Win32 a UWP.
Mantener y reutilizar la investigación y desarrollo invertida en la aplicación Win32.
Poder añadir y utilizar APIs UWP (Tiles, etc).
Utilizar la Windows Store y también poder monetizar la aplicación utilizando esta vía.
Preparación del entorno
Comenzamos descargando y preparando la herramienta pero antes incluso de descarga, repasemos los prerequisitos de hardware y software. Necesitamos una máquina de desarrollo con:
Procesador de 64 bits
Hardware-assisted virtualization
Second Level Address Translation (SLAT)
Mientras que a nivel de software debemos tener la versión 10.0.14316.0 o superior de Windows 10 Preview.
NOTA: Debemos tener la versión Enterprise de Windows para poder utilizar la herramienta. De momento, la versión pre-release disponible no funciona en la versión Pro.
Una vez revisados (y cumplidos) los requisitos necesarios realizamos la descarga de la herramienta. Podemos descargar Desktop App Converter desde el siguiente enlace.
Será necesario descargar:
DesktopAppConverter.zip
BaseImage-14316.wim
Tras extraer el archivo zip, estamos preparados para comenzar a preparar el entorno.
Comenzamos abriendo una ventana de PowerShell con privilegios de administrador.
Comenzamos modificando las preferencias de las políticas de ejecución de PowerShell evitando bloqueos o mensajes de alerta.
Set-ExecutionPolicy bypass
A continuación realizamos el setup de la herramienta con la siguiente línea:
NOTA: Debemos asegurarnos de navegar a la carpeta correspondiente donde hemos descomprimido la herramienta. Dependiendo de la elegida, la línea anterior puede cambiar ligeramente.
Llegados a este punto tenemos todo lo necesario para comenzar a utilizar la herramienta, es decir, para convertir Apps Win32 a UWP.
De Win32 a UWP!
El uso de la herramienta, como hemos comentado previamente, se realiza vía línea de comandos contando con gran cantidad de opciones:
-ExpandedBaseImage: Ruta absoluta a la imagen base.
-Installer: Ruta a la aplicación Win32.
-InstallerArguments: Lista de parámetros separados por comas. Este parámetro es opcional si usamos un msi. Nos permite configurar sistema de logs, instalación silenciosa, etc.
-Destination: Ruta del paquete appx resultante.
-PackageName: El nombre que identifica el paquete.
-Publisher: Nombre del publicador incluido en el paquete.
-Version: Versión del paquete.
y otros opciones que pueden sernos de utilidad según el caso (por ejemplo, modo verboso). Podemos acceder vía línea de comandos a la ayuda de la herramienta en todo momento:
get-help .\DesktopAppConverter.ps1 -detailed
De modo que, convertir una aplicación Win32 llamada App.exe a una App UWP llamada «App» con versión 0.0.0.1 y publicador jsuarez serían tan sencillo como:
Ejecutando el script en modo verboso en todo momento tenemos feedback del proceso (repaso de requisitos, conversión de rutas, registro, preparación del manifiesto, etc):
Una vez terminado el proceso, en la carpeta de salida:
NOTA: Los paquetes generados por ahora sólo se pueden desplegar en sistemas x64.
Firmar el paquete
Para distribuir el paquete utilizaremos el comando Add-AppxPackage disponible en PowerShell. Para poder distribuirlo, el paquete debe estar firmado.
Para firmar el paquete, comenzaremos creando un certificado temporal utilizando la herramienta MakeCert. Abrimos una nueva ventana del símbolo del sistema de VS:
Todo listo!. Ahora tenemos nuestra App Win32 conertida a UWP y lista para su distribución.
Despliegue
Utilizaremos la línea de comandos Add-AppxPackage para instalar la App. Sin embargo, obtendremos un error si en la máquina no tenemos importado el certificado con el que se firmó la App.
Para importar el certificado:
Clic derecho sobre el paquete de la App, Propiedades -> Firmas digitales.
Seleccionamos la firma, ver detalles y a continuación, ver certificado.
Instalar certificado.
Elegimos la opción equipo local y el contenedor de personas de confianza.
Desktop App Converter por defecto captura información relacionada con su uso y se la envía a Microsoft con el objetivo de mejora continua. Si deseamos modificar el comportamiento podemos añadir el siguiente valor del registro:
Añadiremos el valor DisableTelemetry con DWORD establecido a 1 para deshabilitar el envío de información. Para volver a habilitar bastará con establecer el valor a 0 o bien, eliminar la entrada del registro.
¿Y ahora qué?
Llegados a este punto conocemos la herramienta, sus posibilidades y podemos comenzar a sacarle partido. Sin embargo, aún podemos llegar mucho más lejos. Podemos hacer uso desde la aplicación de de APIs UWP como:
Live Tiles
Cortana
Notificaciones
Etc
Podemos migrar código, utilizar AppServices y mucho más!. En próximos artículos continuaremos profundizando en la herramienta viendo coo realizar alguna de estas acciones. Os espero en el próximo!
Mientras tanto, ¿cuáles son vuestras experiencias?, ¿qué os parece Desktop App Converter?. Recordar que cualquier tipo de duda, sugerencia o comentario la podéis dejar en los comentarios de la entrada.
Tras un //BUILD 2016 repleto de novedades, ¿algo mejor que tener varias sesiones con las novedades más destacadas relacionadas con el desarrollo en Windows?.
Desde CartujaDotNet estamos convencidos que tendremos una divertida tarde con por supuesto sesiones técnicas, pero además, regalos, networking y otras grandes sorpresas.
La agenda
Contaremos con la siguiente agenda:
18:00h – 18:15h Bienvenida. Receopción y bienvenida de asistentes.
18:15h – 18:30h Novedades en Visual Studio para desarrollo UWP. ¿Desarrollas aplicaciones universales Windows?. En esta sesión veremos algunas de las últimas novedades introducidas en Visual Studio destinadas para el desarrollo de UWP. Novedades como Editar y Continuar en XAML, novedades en depuración, etc.
18:30h – 19:00h Desktop App Converter: De Win32 a UWP!. Llegar a la Windows Store es ahora más asequible que nunca. Si has invertido tiempo, esfuerzo y conocimientos en el desarrollo de aplicaciones Win32, ahora utilizando Project Centennial te explicamos como convertirla en UWP y aprovechar todas las nuevas posibilidades disponibles, nuevas APIs, la Windows Store, nuevas formas de monetización y mucho más.
19:00h – 20:00h Creando aplicaciones UWP para Xbox One. Llego el momento, por fin, podemos crear aplicaciones universales windows para Xbox One. En esta sesión veremos desde como activar cualquier Xbox One para el modo desarrollador hasta como adaptar nuestras aplicaciones para ofrecer la mejor experiencia.
20:00h – 21:00h Introducción al desarrollo para HoloLens. Con las herramientas, emulador y todo lo necesario, nada mejor que ver las posibilidades de desarrollo con HoloLens, ¿cierto?.
Una agenda completa repleta de grandes novedades de la mano de Josué Yeray y un servidor.
La fecha
El evento tendrá lugar el próximo Jueves, 21 de Abril de 18:00h a 21:00h. Tendremos cuatro sesiones técnicas abordando algunas de las principales novedades en el desarrollo en la plataforma Windows.
El lugar
El evento se celebrará en la ETS de Ingeniería Informática. Dirección detallada:
E.T.S. Ingeniería Informática – Universidad de Sevilla Av. Reina Mercedes s/n Sevilla Se 41012
Si a pesar de todo el contenido de la agenda te parece poco, contaremos también con alguna sorpresa y regalo a sortear entre los asistentes.