Aplicando el patrón MVVM en WPF .NET Core

Acá les dejo la serie de videos que hice para dar mas luz acerca de todas las dudas que poseen sobre este patrón de arquitectura MVVM.

Espero les sea de gran utilidad para sus proyectos en WPF, luego les explicare brevemente en UWP y Xamarin Forms.

Saludos.

XAML Hot Reload for Xamarin.Forms

XAML Hot Reload para Xamarin.Forms acelera su desarrollo y facilita la creación, experimentación e iteración en su interfaz de usuario. Y esto significa que ya no tendrá que reconstruir su aplicación cada vez que modifique su IU, ¡le muestra instantáneamente sus cambios en su aplicación en ejecución!

Una de las nuevas características emocionantes incluidas en esta versión es una vista previa pública de XAML Hot Reload para Xamarin.Forms. Esperamos que esta característica acelere dramáticamente su ciclo de desarrollo interno cuando trabaje con Xamarin.Forms XAML. XAML Hot Reload refleja instantáneamente los cambios que realiza en su aplicación en ejecución, sin necesidad de detener y reconstruir.

Partiendo de los antecedente de Xamarin Live Player hace unos años y el Gorilla player para el desarrollo rapido e intuitivo de intefaces de usuario de una manera mas rapida y dinamica, el Xamarin Hot Reload promete dar una buena impresion bien soportada y por fin estable para nosotros los desarrolladores, que a la final abone mas al desarrollo practico ya merecido de las aplicaciones en Xamarin.Forms de una manera mas amigable y agradable para el desarrollador.

Habilitando el XAML Hot Reload

Como una función de vista previa, XAML Hot Reload for Xamarin.Forms está deshabilitado de forma predeterminada cuando actualiza por primera vez a la última vista previa de Visual Studio 2019 o Visual Studio para Mac. Siga estos pasos para habilitarlo:

Asegúrese de haber instalado la última vista previa que incluye XAML Hot Reload:
         Visual Studio 2019 16.3 Preview 2
         Visual Studio para Mac 8.3 Preview 2
Active Xamarin XAML Hot Reload en la pantalla de configuración:
         En Windows, XAML Hot Reload puede habilitarse marcando la casilla Habilitar Xamarin Hot Reload en:
         Herramientas> Opciones> Xamarin> Hot Reload.

En una Mac, XAML Hot Reload puede habilitarse marcando la casilla Habilitar Xamarin Hot Reload en:
Visual Studio> Preferencias> Proyectos> Xamarin Hot Reload.

Depura tu aplicación Xamarin.Forms para Android o iOS y edita un archivo XAML mientras tu aplicación se está ejecutando. Los cambios se aplicarán automáticamente a la aplicación en ejecución cuando presione Guardar.

Nota: Si formó parte de la vista previa privada, puede encontrar información adicional sobre la actualización a la vista previa pública aquí.

¿Como funciona?

Antes de volverse loco tratando de recargar todo, es importante comprender la funcionalidad y las limitaciones de XAML Hot Reload para Xamarin.Forms. Cuando guarda los cambios en un archivo XAML de Xamarin.Forms, XAML Hot Reload entra en acción:

  •     Primero, XAML Hot Reload identifica el objeto de tiempo de ejecución que corresponde al objeto de nivel superior del archivo XAML que se editó. Si la vista o página no está cargada actualmente, el cambio se guarda para más adelante.
  •     El cargador XAML Xamarin.Forms se ejecuta nuevamente en el objeto existente, restableciendo sus propiedades y recreando sus hijos desde el archivo XAML modificado.
  •     Se vuelve a llamar al método InitializeComponent en el objeto para volver a conectar los objetos recién inflados a cualquier controlador de eventos o propiedades x : Name que pueda tener en su código.

Como puede suponer, este enfoque conlleva algunas limitaciones:

  •     Los cambios de código y recursos no se vuelven a cargar. Solo puede recargar cambios a XAML. Los cambios en su código (incluidos elementos como agregar nuevos controladores de eventos o recursos, como imágenes o CSS) no se volverán a cargar.
  •     Algún estado de vista puede perderse en la recarga. Si está modificando la apariencia o el estilo de sus vistas en el código, así como en XAML, esas modificaciones no se pueden volver a aplicar después de una recarga. Esto se debe a que es posible que el código no se vuelva a ejecutar en los objetos XAML recién inflados.

Una lista más completa de limitaciones conocidas está disponible en el sitio de documentación. En la mayoría de los casos, XAML Hot Reload es lo suficientemente resistente como para manejar con gracia los cambios no admitidos. Indicará XAML no válido u otros problemas con IntelliSense cuando edite su archivo XAML.

Conclusión

Esperemos esta nueva herramienta (Lo cual ya deberia de estar disponible hace muchisimo tiempo), no vuelva a ser promesas y termine microsoft de pasar la pagina con esa deuda para nosotros los desarrolladores que siempre queremos mas practicidad en nuestras tareas y que la tecnologia como Xamarin.Forms sea cada dia mas atractiva para nuevos desarrolladores y sea tanto hoy como para el futuro una tecnologia de primera a la hora de pensar en el desarrollo de aplicaciones moviles.

Por ahora sigamos cambiando la rueda mientras manejamos esta tecnologia….

Papervision 3D: Otra alternativa 3D para flash


Cada vez que navegamos por la Web, nos encontramos con la tecnología Flash en variadas aplicaciones. Ello se debe a que de un tiempo a esta parte, son bastante empleadas en los sitios Web para enriquecer el contenido, elaborando animaciones que resaltan las estructuras, es decir, páginas Web totalmente multimedia.

Hasta hace un tiempo, solo se veía a esta tecnología cómo un conjunto de fotogramas, que permitían elaborar un contenido interactivo, pero en forma 2D (dos dimensiones). Esto era una desventaja evidente frente a la tecnología que le hacia competencia directamente, el Javascript. Esta última trabaja, con aplicaciones que permiten generar un ambiente 3D (tres dimensiones).

Qué es Papervision 3D

Papervision 3D, es un proyecto que ha visto la luz hace ya tiempo, pero que recién nos esta mostrando sus primeros frutos, los cuales son realmente sorprendentes. Se trata de una iniciativa privada, libre y adesarrollada través de un proyecto colaborativo.

Así, Papervision 3D, se constituye en una implementación novedosa y esencial a los parámetros que ya tenia Flash. Dejando de lado las simples animaciones de fotogramas en 2D, para pasar a una interactiva secuencia en 3D.

Ejemplos en 3D elaborados con Papervision – imagen obtenida del Blog oficial, autor Den Ivanovs.

Ventajas de emplear Papervision 3D

Más allá de que se haya convertido en necesidad una tecnología en tres dimensiones para Flash, esta vendrá incorporando muchas posibilidades nuevas, así por ejemplo, tendremos la posibilidad de:

1. Diseños Web más dinámicos, las nuevas Web que se desarrollen con esta tecnología podrían incorporar espacios virtuales donde los artículos, noticias, y demás contenidos puedan ser desplegados de una manera totalmente diferente. Imagínense un Banco de contenido, cuya información este disponible en 3D, esto será posible.

2. Aplicaciones más dinámicas. Flash no solo es usado para las páginas Web, es notoria su presencia en distintas aplicaciones, desde un celular o Ipod hasta una sofisticada computadora.

En el campo de los juegos, flash se ha convertido en un motor de desarrollo importante, lográndose con el un diseño aceptable y facilitando la jugabilidad. Imagínense los juegos que podrían diseñarse al incorporarse una tecnología que ofrezca el aspecto 3D, pues simplemente seria una novedad y disfrute para el usuario y excelente beneficio para un sitio Web comercial que se dedique a promocionar ests tipo de entretenimiento.

3. Mayor interacción para los visitantes. Si de diseño dinámico se trata, con esta nueva tecnología, las paginas no solo serán vistosas y bonitas. Permitirá que los visitantes interactúen de una manera diferente, encontrándose tal vez, con una Tienda virtual, una visita guiada, etc.

4. A través de Papervision 3D Flash, tendrás a disposición toda la tecnología 3D. Empleando por ejemplo, aplicaciones como SourceBinder, un nodo de base visual para facilitar la creación de un prototipo, podrás aplicar Flash basádote en aplicaciones visuales.

Algunas limitaciones de Papervision

Papervisión 3D está disponible para descarga en la Web del proyecto o ingresando a Google code. La versión actual de Papervision3D disponible es la 2.0 alfa AKA “Great White” y puede encontrarse en forma de repositorio.

Google code Papervision 3D – imagen obtenida de Google code.

Sin embargo hay algunas limitaciones, las cuales se van solucionando a través de la colaboración y desarrollo en la Web del proyecto, más que todo se trata de incompatibilidades con otros software o cuestiones relacionadas con el lenguaje y la programación. Sin embargo no son asuntos que conlleven mucha importancia ni impidan su uso extensivo.

1. Limitaciones de Hardware, Al parecer la tecnología 3D solo va a poder ser utilizada en equipos con un rendimiento óptimo. Dónde aspectos como la velocidad del bus, la cache, memoria de video y otros requerimiento técnicos van a influir definitivamente.

Esto significa que si deseas instalarlo y emplearlo debes tener un ordenador con una buena memoria de video (128 mínimo), un procesador Pentium IV o similar con una velocidad de procesamiento aceptable (unos 2.4 GHZ como mínimo) y una memoria RAM sufiente para ayudar al funcionamiento ligero de la aplicación (estimo que sobre 1 GB). Este punto es un limitante, sobre todo si es un software libre, pero desgraciadamente, y lo sabemos todos, los programas de diseño requieren necesariamente de un soporte de hardware importante.

2. Flash no debe depender de aspectos físicos. Otra de las posturas es que flash no debería de depender de aspectos cómo la aceleración de gráficos y otros. Estas tecnología son comerciales y se contraponen al empleo libre del software; sin embargo como señalé, este es un programa especializado por lo tanto esta orientado a desarrolladores y creadores 3D, labor que no todos podemos (me incluyo) realizar, por lo que de todas formas su uso se vera limitado a un grupo sectorizado.

Con todo lo expuesto hasta aquí, coincidimos en que Flash no deja de sorprendernos. Siendo una tecnología abiertamente conocida, es de gran interés todo lo que tras ella se este incubando. Al parecer Flash va a estar a la altura de su tecnología competidora, Javascript. Muchos de los desarrolladores del mundo entero, ya están desarrollando y compartiendo sus modelos 3D a traves de la Wiki de Papervision, en el mismo blog oficial o a través de Google Code Papervision 3D el asunto es ahora lograr la interacción de este software con los diferentes programas y lenguajes similares.

Imagínense desarrollar modelos 3D de un edificio, de una tienda, de un juego. Las posibilidades son inmensas y muy prometedoras. Flash, ha dejado de ser una aplicación con diseños bonitos y pocos efectos, la tecnología 3D le otorgará un nuevo rostro.

Papervision 3D, bastante útil.

No cabe duda de que, Adobe (actual propietaria de los derechos de Flash) dejará completamente libre esta tecnología y el software necesario para implementarlo. Sin embargo gracias al proyecto colaborativo de Papervision 3D, podemos tener acceso a diseños Webs mucho más interactivos, así como la posibilidad de desarrollar presentaciones, modelos y aplicaciones interactivas para páginas Web y Blogs.

Papervisión se presenta además como una alternativa útil para el diseño publicitario, y como una forma de presentar proyectos (como por ejemplo una casa) en un desarrollo tridimensional.