The Roadmap for WPF

Cuando lanzamos en 2006 WPF dentro de .NET 3.0, su acogida por parte de los desarrolladores fue fantástica. Empresas, ISVs y partners de Microsoft la convirtieron en la tecnología central de sus negocios, construyendo grandes proyectos para sus clientes. Esta tendencia continúa a día de hoy ya que aproximadamente el 10% de los nuevos proyectos creados con Visual Studio 2013 en los últimos 60 días fueron proyectos de WPF. WPF ha logrado tener tras de sí una comunidad activa, que emplea este tipo de proyectos para crear aplicaciones empresariales en el entorno Windows. Un ejemplo reciente de aplicación WPF es la que desarrollaron nuestros compañeros de InterKnowlogy. Esta aplicación fue usada por los productores de la CNN para laselecciones, para subir, validar y configurar los datos vistos en las aplicaciones a tiempo real para dicho evento. Los datos de estas elecciones se encuentran presentes en el Magic Wall de la CNN, en el cual colaboró el equipo de Bing Pulse de Microsoft para su desarrollo.

Este post muestra la hoja de ruta de la plataforma WPF, incluyendo las áreas que estamos priorizando y las mejoras presentes en próximas versiones de Visual Studio y sus herramientas adicionales.

Áreas de inversión en la plataforma

Basándonos en una encuesta realizada durante la conferencia del //build a principios de año, sugerencias de los usuarios y entrevistas con un gran número de desarrolladores de WPF en los últimos meses, hemos priorizado las siguientes áreas para centrar nuestros esfuerzos y hacer de WPF una mejor plataforma.

Rendimiento: WPF es utilizado para desarrollar aplicaciones de gran tamaño y que requieren un elevado rendimiento, como Visual Studio y Blend, por lo que mejorar aún más el rendimiento a raíz del feedback de nuestros usuarios es una prioridad para nosotros. Algunos de los principales puntos que estamos tratando de optimizar en este sentido son el arranque de las aplicaciones, el scrolling y el rendimiento virtualizando ItemsControls.

Interoperabilidad de DirectX: El principal objetivo aquí es hacer WPF independiente de DirectX, para que las aplicaciones interoperen con nuevas versiones de DirectX sin conflictos.

Soporte de nuevo hardware: Algunas nuevas tecnologías, como las pantallas táctiles o las pantallas de alta densidad, son cada vez más comunes en los dispositivos más recientes, por lo que consideramos muy importante que las aplicaciones WPF puedan soportar este tipo de cambios en el futuro y adaptarse a estas nuevas capacidades.

Tooling: Vamos a seguir co-evolucionando las herramientas de WPF conjuntamente con nuevas plataformas como .NET / WinRT. Este compromiso se refleja en la sección de mejoras de las herramientas de este post.

Las mejoras en algunas de estas áreas pueden requerir de una versión concreta del sistema operativo y/o tener riesgos de compatibilidad. En estos casos, las características se mostrarán o no dependiendo del sistema operativo en el que se lleve a cabo el desarrollo y/o pueden requerir que las actives opcionalmente.

Progreso actual en WPF

Uno de los principales motivos de este intento constante de mejora de WPF es muy sencillo: WPF es una parte esencial de .NET Framework. El .NET Framework es un componente del sistema operativo, a pesar de ser un producto independiente, por lo que el soporte para .NET Framework sigue la política de ciclo de vida del sistema operativo Windows. El soporte extendido para la versión recomendada de .NET (4.5.2) en Windows 8.1 estará disponible hasta 2023, período durante el cual va a seguir recibiendo soluciones a problemas de seguridad y errores reportados que puedan afectar a nuestros usuarios de WPF.

Mejorando la calidad de WPF

El proceso de mejora de WPF no se ha detenido nunca, y aquí tenemos algunos ejemplos de las cosas que podréis ver en futuras versiones de Visual Studio 2015 y .NET  4.6.

Ejemplos de correcciones recientes en WPF para .NET Framework 4.6:

  • Soporte de múltiples imágenes para la imagen cursor del ratón en System.Windows.Input.Cursor
  • Soporte para ventanas hijas transparentes
  • Mejorado el reconocimiento gestual de la doble pulsación mediante el uso de la distancia umbral de registro
  • Mejorada la selección de texto mediante la doble pulsación del control TextBox de WPF
  • Mejorada la fiabilidad de la entrada mediante un stylus en el control ComboBox de WPF

¡Nos tomamos tu feedback en serio!

Actualmente estamos investigando una serie de problemas de fiabilidad y errores que han sido votados en el Connect, para arreglar en una versión futura.

Título Votos

Los eventos Touch de WPF se lanzan con retraso

29

El borde superior de la ventana es demasiado fino

18

Usando BitmapFrame.Create con cualquier archivo TIFF asigna 300MB de memoria reservada si se ha instalado Microsoft Camera Codec Pack

12

Mejoras en las herramientas

Las herramientas para WPF fue una de las principales peticiones de los usuarios durante nuestras entrevistas personales y las encuestas. Esto fue reflejado en el feedback por parte de los usuarios, donde 3 de las 5 ideas principales aportadas en la categoría de herramientas para XAML fueron referentes a WPF o tuvieron usuarios solicitando soporte para WPF en los comentarios.

Visual Diagnostics: La primera petición de las encuestas y la segunda idea en el XAML Tools UserVoice fue la necesidad de un depurador de interfaces de usuario para las aplicaciones de WPF. Para solventar esto estamos construyendo una completa suite de herramientas de depuración para aplicaciones WPF que permitirá inspeccionar el árbol visual actual y modificar las propiedades de los elementos mientras se depura. Además, esos cambios podrán quedar de manera persistente en el código.

WPF_1

Timeline tool: Una petición habitual de nuestros usuarios y la cuarta petición de las encuestas fue mejorar las herramientas de diagnóstico de rendimiento para WPF. Estamos en proceso de construcción de una nueva herramienta de diagnóstico para WPF que permitirá solucionar problemas tales como arranques lentos de la aplicación, un mal frame rate y otros problemas de rendimiento comunes. Combinado con las herramientas actualmente disponibles Uso de memoria y Uso de CPU, os proporcionaremos un completo conjunto de herramientas dentro de Visual Studio que os permitirá crear aplicaciones rápidas y fluidas con WPF.

WPF_2 WPF_3

Mejoras de Blend: Blend para Visual Studio 2015 ha sido rediseñado para seguir siendo una de las herramientas favoritas a la hora de crear aplicaciones WPF visualmente atractivas. Blend tiene una nueva apariencia más elegante y compatible con Visual Studio para mejorar el flujo de trabajo entre estas dos herramientas. Además, el nuevo Blend está basado en la misma tecnología que Visual Studio (incluyendo WPF) para mejorar deficiencias pasadas, incluyendo un mejorado explorador de soluciones y soporte para el control de versiones. Y aún más importante que lo anterior es la presencia ahora en Blend de XAML IntelliSense y capacidades de depuración básicas. Uno de los responsables de esto es el soporte para cargar proyectos asíncronos y un mejor control de versiones de las clases que ahora podemos proporcionar para grandes aplicaciones WPF, las cuales son comunes en las empresas. La edición de plantillas es ahora soportada para WPF en la aplicación, y esta experiencia ha sido refinada aún más para permitir una verdadera edición in-situ usando Peek en XAML.

WPF_4

El Timeline tool y el Visual Diagnostics no están disponibles actualmente en Visual Studio 2015 preview, y nuestro equipo está trabajando muy duro para poner a vuestra disposición estas características lo antes posible. Esto es solo un pequeño adelanto de todas las mejoras que estamos preparando y vamos a revelar por ahora. ¡Seguid atentos para enteraros de más novedades muy pronto!

 

Un saludo,

Josevi Agulló (@josevi_7)