jueves, 27 de marzo de 2014

WINDOWS PRESENTATION FOUNDATION



Introducción:
En esta lección se realizará una introducción en la plataforma de desarrollo Windows Presentation Foundation que ofrece Microsoft con su nuevo producto Windows Vista, y sus principios básicos de funcionamiento, su arquitectura de componentes y sus principales características. Además, se describirán las novedades introducidas en su última versión.

Objetivos:
         Comprender qué es Windows Presentation Foundation.
         Conocer la estructura de Windows Presentation Foundation.
                    Comprender que es el framework y cómo se programa en XAML.


¿Qué es Windows Presentation Foundation?
El Windows Framework Extension (WinFX) es la siguiente generación del framework de programación de Windows. WinFX está basado en el Framework .NET 2.0; sin embargo, incorpora una nueva API de programación compuesta por “Avalon” (ahora llamado Windows Presentation Foundation) e “Indigo” (ahora conocido como Windows Communication Foundation). WinFX fue presentado por primera vez al mundo en el PDC 2003 (Professional Developer’s Conference) en Los Angeles, e inicialmente ha sido integrado como parte del cliente de Windows “Longhorn”, ahora ya conocido como Windows Vista. En esta serie de presentaciones se da una visión global de Windows Presentation Foundation.

¿Qué es XAML?
Windows Presentation Foundation es el subsistema de presentación unificado de Microsoft para Windows, expuesto a través de WinFX, modelo de código administrado de Windows Vista que extiende Microsoft .NET Framework. Windows Presentation Foundation está compuesto por un motor que saca ventaja del hardware con gráficos modernos y por un conjunto de clases administradas que los desarrolladores pueden usar para crear aplicaciones visualmente ricas. También presenta XAML, que permite que los desarrolladores utilicen un modelo basado en XML para manipular modelos de objetos.

En Windows Vista, WinFX admite una API con la cual los desarrolladores pueden alojar los controles y formularios de Windows Forms en una aplicación de Windows Presentation Foundation, y viceversa. Cuando un desarrollador crea una aplicación en Windows Presentation Foundation, la mayor parte del código se encuentra escrito e implementado en XAML. XAML es más rápido, más fácil de implementar y de localizar, y significa una elección mejor que cualquier código equivalente. Con XAML, no existen errores de rendimiento, porque es una representación de un modelo de objetos basado en XML.

¿Qué es AERO?
El término AERO, sigla de Auténtico, Energético, Reflexivo y Open (Abierto), remite a las guías de experiencia de usuario para Windows Vista, y se encarga del look and feel del sistema operativo. Estas guías no sólo determinan el modo en que se dibujan los píxeles, sino también la forma en que el usuario interactúa con el sistema y evoca sentimientos.

Windows Presentation Foundation es la nueva generación del sistema gráfico.
Aprovecha la potencia y la capacidad que hoy en día brindan los sistemas gráficos.
Proporciona una base para construir aplicaciones y dar al usuario una experiencia de alta fidelidad en el uso de Windows Vista.

Windows Presentation Foundation de Microsoft permite construir aplicaciones de alta fidelidad dentro de Windows Vista, trayendo consigo aplicaciones IU y contenido multimedia, y aprovechando al máximo la capacidad de la computadora del usuario. La funcionalidad se extiende en el soporte de “Tablets” y otros formularios de entrada, un moderno sistema de imágenes e impresión de “pipelines”, accesibilidad y automatización de la infraestructura de IU, y manejo y visualización de datos.

La potencia del hardware 3D, que ya es estándar en las computadoras modernas, es algo hoy poco utilizado; solamente los juegos y algunas aplicaciones especiales de negocios la emplean. Windows Presentation Foundation define un conjunto de estas avanzadas capacidades como plataforma para construir aplicaciones con una experiencia de usuario mejorada.

Windows Presentation Foundation es la nueva generación del subsistema que define un rango de servicios de salida: interfaz de usuario, dibujos 2D y 3D e imágenes, una nueva representación de documentos, y servicios de audio y video. De este modo, abastece una sola base de marco de trabajo en el manejo de todos estos servicios. Windows Presentation Foundation hace posible construir una experiencia de usuario mejorada que hasta ahora era difícil o imposible. Para los desarrolladores .NET, el marco de trabajo es familiar, y reducirán un gran número de líneas de código de animación.

   Los desarrolladores podrán proporcionar una experiencia de usuario más rica y precisa para sus propias aplicaciones.
       Se podrán aprovechar nuevas funciones visuales, por ejemplo, AERO.
       XAML y WPF separan los controles según su funcionalidad y sus habilidades.

Uno de los objetivos primordiales en el desarrollo bajo Windows Presentation Foundation es la integración. Servicios como las animaciones y DataBinding son usados exactamente de la misma manera que el manejo que tienen los gráficos 2D y 3D, los elementos de interfaz de usuario, como botones y TextBox, e incluso los elementos multimedia.
Los usuarios finales desean excelentes gráficos, con buenas resoluciones en DPI, efectos 3D, animaciones, transiciones y fundidos, todo en un entorno simple. Justamente, Windows Vista ofrece esta nueva generación de gráficos.

Controles
         Simple Controls
Controles simples que no tienen ningún contenido o ítems.
         Content Controls
Son controles que pueden mostrar algún contenido.
         Items Controls
Controles que pueden tener hijos. Cualquier control que tenga alguna colección cae en esta categoría.
         Headered Content Controls
Contienen dos propiedades: Header (es típicamente usada para poner un identificador) y Content (es contenido del control).
         Headered Items Controls
Contienen las siguientes propiedades: Header, Item e ItemSource.

Implementación de estilos
Los estilos permiten a los diseñadores de aplicaciones, documentos e IU, estandarizar una apariencia particular de un elemento. Esto se puede realizar, pero es necesario un fuerte modelo de estilo para poder compartir la apariencia. WPF provee ese modelo.
Se puede declarar un estilo de cualquier elemento que derive desde FrameworkElement o de FrameworkContentElement. La forma más común de declarar un estilo es haciéndolo dentro del archivo XAML. Si se declara un estilo en el elemento principal de la aplicación, éste puede ser utilizado en cualquier lugar de la aplicación.

Un nuevo modelo de aplicación mediante un Objeto Aplicación
Todas las aplicaciones que usan Windows Presentation Foundation están asociadas a un Objeto Aplicación. Este objeto representa a la aplicación frente al sistema, y permite al sistema comunicarse con la aplicación.

WPF nos introduce en una nueva forma declarativa de programar, llamada XAML
XAML es un lenguaje declarativo basado en XML, optimizado para describir gráficamente interfaces de usuario visuales ricas desde el punto de vista gráfico, tales como las creadas por medio de Macromedia Flash.
XAML fue diseñado para soportar las clases y los métodos de la plataforma de desarrollo .NET que tienen relación con la interacción con el usuario, en especial, el despliegue en pantalla.

Los paneles son la clase base para todos los elementos que proporciona WPF en el soporte de layout.
Los elementos de un panel son componentes que controlan la renderización de los elementos (tamaño y dimensiones, posición, y el arreglo del contenido de sus hijos). WPF proporciona un gran número de paneles, como Canvas, DockPanel y GridPanel, que veremos más adelante.
l  WPF ofrece una nueva generación de gráficos.
Ø  Efectos 3D.
Ø  Animaciones.
Ø  Gráficos basados en vectores.
Ø  Elementos audiovisuales.

Efectos 3D
La implementación 3D de Windows Presentation Foundation permite a los desarrolladores dibujar, transformar y animar gráficos 3D de distintas formas, usando las mismas habilidades afrontadas por la plataforma de gráficos 2D. También permite combinar gráficos 2D y 3D para crear controles más atractivos, y proporcionar complejas ilustraciones de información. Este soporte 3D que nos otorga Windows Presentation Foundation no tiene todas las características para el desarrollo de juegos.

Animaciones
Las animaciones pueden ser un atractivo para una interfaz de usuario. Solamente con pocas animaciones se pueden crear sorprendentes efectos de animación.
WPF proporciona todas las herramientas para que este proceso que tan complicado nos parecía antes sea más fácil de implementar.

Gráficos basados en vectores

Windows Presentation Foundation usa gráficos basados en vectores. Éstos, que incluyen SVG (Scalable Vector Graphics), archivos metafile (.wmf) y las fuentes (que usamos usualmente para las letras), almacenan la información y la transmiten como una lista de instrucciones que describen cómo se va a recrear una imagen usando gráficos primitivos.

Las aplicaciones en Windows Presentation Foundation están representadas con el nuevo motor de composición basado en vectores. La aceleración del hardware es usada por el proceso de representación sobre el DirectX de la placa gráfica de nuestra computadora, con un software de respaldo para monitores más viejos. El sistema de coordenadas provee doble precisión y resolución independiente, que permite soportar resoluciones altas de DPI para las pantallas y se está utilizando cada vez más frecuentemente. 

Document
WPF provee muchas características para combinar documentos, IU y contenidos audiovisuales. Los documentos usualmente contienen un flujo de controles e imágenes, los cuales son difíciles de proporcionar con los controles tradicionales de Windows.

UI
Los controles UI permiten una alta interacción con el usuario, pero no se concentran tanto en el soporte para textos.

Media
Enriquecen la visión de las presentaciones interactivas, como video, audio y más.
Desktop Services (servicios de escritorio)
Provee un alto rango de servicios que permiten el uso eficiente de las aplicaciones de escritorio. En especial, con respecto al menú Inicio y la barra de tareas, hay nuevas características incluidas en la “sidebar”, que permiten a los usuarios monitorear notificaciones y actividades en tiempo real (como el tiempo, la batería y actividades online).

Administrador de ventanas
Maneja la mayor parte del trabajo duro de la administración de ventanas, como minimizar, maximizar y mostrar cuadros de diálogo. Las nuevas características incluyen la navegación basada en páginas y soporte en Extensible Application Markup Language, XAML.

Controls Interop Engine
Provee soporte para controles .NET, HTML y Win32.

Motor de composición de escritorio
El motor está basado en vectores.

Animation and Composition
Provee un fuerte soporte para una alta representación de vectores gráficos y estándares como SVG (Scalable Vector Graphics).

Media Processing
Provee procesamiento de audio y video, como también nuevos codecs y APIs.

ARQUITECTURA DE WINDOWS PRESENTATION FOUNDATION

Consiste en dos partes principales: 
Ø  El motor
  Unifica la manera en que desarrolladores y diseñadores manejan documentos, material audiovisual e IU.
Ø  El marco de programación
   Proporciona soluciones para material audiovisual, diseño para interfaz de usuario y documentos que van mucho más allá de lo que los desarrolladores tienen hoy.

El motor de WPF
 El motor de WPF unifica la manera en que desarrolladores y diseñadores manejan documentos, material audiovisual e IU, proporcionando un runtime único para experiencias de navegación, aplicaciones basadas en formularios, gráficos, videos, audio y documentos. Windows Presentation Foundation se encuentra construido sobre Microsoft DirectX(r), lo cual libera todo el poder de los gráficos que el hardware presenta en computadoras modernas, y es posible explotar los futuros avances en materia de hardware. Por ejemplo, el motor de rendering basado en vectores de Windows Presentation Foundation permite que las aplicaciones escalen y aprovechen los monitores de alta definición sin exigir trabajo suplementario por parte del desarrollador o usuario. De modo similar, usted también sacará provecho del momento en que Windows Presentation Foundation detecte una tarjeta de video que soporta la aceleración de hardware.

El framework de Windows Presentation Foundation
  El framework de Windows Presentation Foundation proporciona soluciones para material audiovisual, diseño para interfaz de usuario y documentos que van mucho más allá de lo que los desarrolladores tienen hoy. Creado con criterios de extensibilidad, Windows Presentation Foundation permite que los desarrolladores creen sus propios controles sobre el motor de Windows Presentation Foundation “desde el ground up” o haciendo una subclase con los controles ya existentes de Windows Presentation Foundation. Son centrales en el framework de Windows Presentation Foundation los controles para formas, documentos, imágenes, videos, animaciones, 3D y “paneles” donde ubicar controles y contenido. Estas cuestiones “primitivas” proporcionan los blocks de construcción para el desarrollo de la nueva generación de experiencias de usuario.


            Ver video de Windows Presentation Foundation

5 comentarios: