Universal Forms 1.20 se ha liberado!

Hace 18 meses inicie este framework para auto generación de formularios en UWP basado en el control DataForm de Silverlight al menos en concepto que nos facilitaba la vida a los XAML Devs para generar formularios de manera automática creando formularios decorando las propiedades de una clase.

Hasta este momento hay más de 6,000 descargas de este framework por medio de Nuget, estoy realmente impresionado y contento y sobre todo motivado a seguir soportando este proyecto.

 

 

Aunque existen varias soluciones como los controles de Telerik , Infragistics, SyncFusion ninguno ofrece la flexibilidad que ofrece el auto generador que realice para un proyecto en el que estaba trabajando.
La gran ventaja de este framework y su control principal que es el Auto Generador algo asi como un DataForm es que tiene la capacidad de generar combobox a partir de colecciones eso significa que si tienes una colección como un ObservableCollection en tu ViewModel solo basta con decorarlo como si fuera otra propiedad y el control dibujara mediante un ComboBox esa colección y hará todo el trabajo de Bindings por ti así no tendrás que editar el template usando XAML como lo tienes que hacer con varios controles que hacen cosas similares.

 

 

Para esta versión he agregado en un nuevo paquete llamado para no afectar a los devs que  actualmente están usando el framework.

https://www.nuget.org/packages/UniversalFormsToolkit.Prism.Controls/

En esta version he agregado un control que te permite crear cuadros de dialogo en modo Modal, te preguntaras para que? si ya tenemos un ContentDialog

En mi opinion aunque el ContentDialog es muy util, no es muy amigable con el MVVM Pattern ademas que tiene limitadas funciones, no puedes personalizar el template a tu gusto y mucho menos modificar los botones o si es que lo puede uno hacer es mucho trabajo.

 

En esta versión he agregado un control que te permite crear cuadros de dialogo en modo Modal, te preguntaras para que? si ya tenemos un ContentDialog

En mi opinión, aunque el ContentDialog es muy útil, no es muy amigable con el MVVM Pattern además que tiene limitadas funciones, no puedes personalizar el template a tu gusto y mucho menos modificar los botones o si es que lo puede uno hacer es mucho trabajo.

 

Por eso decidí hacer público un control que es amigable con PRISM y UWP utilizando MVVM Pattern.

Con este control que a su vez es un servicio llamado DialogService tiene la capacidad de mostrar una vista que le indiques y mandara a llamar a OnNavigatedTo y OnNavigatedFrom de prism y también soporta pasar parámetros, eventos que te notifican cuando ha cerrado y poder cerrar el cuadro de dialogo desde el ViewModel.

Ejemplo

 

Aunque no existe una solución perfecta, está a mi parecer facilita la vida de un developer, para poder seguir lo más fielmente el patrón MVVM.

 

En el próximo release hare publico otro servicio que ayudara de manera considerable a los devs que estén trabajando con varias ventanas al mismo tiempo en UWP.

 

 

 

 

 

 

 

 

 

 

 

Re Connect 17 de Febrero 2018

Tuve el placer de ser invitado para dar una charla sobre como Modernizar aplicaciones Windows Forms y WPF con UWP.

 

En esta platica me enfoque desde un punto de vista técnico como usar las NetStandard 2.0 para poder reutilizar nuestro código en aplicaciones UWP así como otras tecnologías

 

Platica sobre UWP y UniversalFormsToolkit en las instalaciones de Microsoft Japón

El año pasado fui invitado a convivir con la comunidad de MVPs de Japón, entre varias actividades, como laboratorios de Xamarin, eventos acerca de Azure, tuve la oportunidad de ser ponente y hablar sobre un framework para generación automática de formularios con UWP el pasado 19 de Septiembre, 2017, más información en este enlace.

Build Simple & Clean Input Forms for the UWP

Fue un placer poder brindar esta charla a los MVPs de la comunidad de Japón.

 

Tuve la oportunidad de conocer a grandes exponentes de tecnología en ese lejano país, como Madoka Chiyoda Technical Evangelist de Xamarin en Japón.

 

Gracias a Rie Moriguchi MVP Lead de Japón también tuve la oportunidad de impartir laboratorios de UWP , Xamarin y Azure.

 

Fue una experiencia increíble!

 

 

 

Microsoft Technical Community Tour Querétaro 2017

El pasado 9 de diciembre del 2016 tuve la oportunidad en participar en la organización y también tuve la oportunidad de ofrecer varias pláticas sobre los temas:

Desktop Bridge, Micro Servicios con Azure, IoT internet de las cosas.

Quiero agradecer a el equipo de Software Guru y Microsoft Mexico por hacer este evento una realidad.

Aquí algunas fotos del evento.

Microsoft Technical Community Tour México @ Querétaro

Platica: Desarrollando Aplicaciones con UWP y Windows 10 en UPQ

El pasado 28 de Julio del 2016 tuve la oportunidad de dar una plática donde traté el tema “Desarrollando aplicaciones con UWP y Windows 10” en las instalaciones de la Universidad Politécnica de Querétaro.

Quiero agradecer al Profesor Ivan Peredo Valderrama y a la UPQ por el apoyo recibido para la realización de dicha platica.

Aquí Algunas fotos.

Usando Surface Dial con WPF

Esta es una traducción del artículo que hace unos meses publique en el blog de Microsoft MVP Award.

Hace algunas semanas Microsoft lanzó su nuevo dispositivo Surface Dial un dispositivo que promete mejorar la experiencia de usuario con Surface Studio, pantallas touch, laptops y PC con Windows 10 instalado.

En este artículo explicaré con ejemplo sencillo, como utilizar el nuevo dispositivo Surface Dial con aplicaciones WPF.

Creando aplicaciones con WPF

Microsoft a publicado algunos ejemplos de código demostrando como se utiliza el Surface Dial y que es lo que pueden hacer con este dispositivo asombroso:

Using UWP (Universal Windows Platform) we have this code example: https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/RadialController

Using Classic Desktop Apps, we have this code example: https://github.com/Microsoft/Windows-classic-samples/tree/master/Samples/RadialController

Personally, I like to develop applications for UWP apps, but I couldn’t find any decent documentation explaining how to use this device with WPF – because, in my case, I would like to integrate it to improve the UX.

Personalmente me gusta crear aplicaciones para UWP, pero no pude encontrar documentación explicando como utilizar este dispositivo con WPF, porque en mi caso me gustaría mejorar la experiencia de usuario de mis aplicaciones WPF.

¿Entonces, como hacemos esto?

Primero que nada, necesitamos instalar el paquete de Nuget UwpDesktop. Necesitamos entender que no hay un suporte nativo de nuestro dispositivo como es el caso de UWP por lo tanto necesitamos usar interoperabilidad (si quieres saber más de este tema, puedes leer esta excelente documentación).

Después necesitamos obtener el Hwnd de la ventana de nuestra aplicación WPF.

RadialController vive dentro del espacio de nombres Windows.UI.Input necesitamos agregar el paquete de Nuget UwpDesktop para poder utilizar interoperabilidad.

Necesitamos obtener el GUID de nuestro dispositivo

Finalmente, podemos llamar el método CreateForWindow pasando el Hwnd como parámetro de nuestra ventana de WPF.

Podemos personalizar nuestro Radial Menu(personalizando el menú) realizando algo parecido a esto:

Este es el código final donde se muestra lo necesario para conectar el Surface Dial con nuestra aplicación WPF

 

He subido el código en Github pueden descargarlo y poder ver como funciona a detalle