miércoles, 22 de julio de 2015

Tecnologías Aplicadas de .NET - Parte 1: Interfaces Gráficas

Índice

0. Introducción
1. Tecnologías de Interfaces Gráficas
2. ASP.NET
3. Silverlight
4. Metro
5. Windows Presentation Foundation (WPF)
6. Windows Forms (WinForms)
7. Conclusiones
8. Glosario
9. Literatura & Enlaces

0. Introducción

En esta nueva serie de artículos .NET haremos un recorrido por las tecnologías aplicadas de .NET: tecnologías de interfaces gráficas, tecnologías backend, tecnologías de sistemas distribuidos.

Empezamos con la descripción de las tecnologías de interfaces gráficas; aquí trataremos principalmente:
  • ASP.NET
  • Silverlight
  • Metro
  • Windows Presentation Foundation (WPF)
  • Windows Forms (WinForms)
Los detalles que discutiremos de cada tecnología de interfaz gráfica son ámbito de aplicación, contraste de ventajas frente a las demás, y características sobresalientes.

1. Tecnologías de Interfaces Gráficas

Las tecnologías construidas bajo Microsoft .NET Framework para la construcción de clientes están agrupadas en 4 APIs:
  • ASP.NET (System.Web.UI), 
  • Silverlight
  • Windows Presentation Foundation (WPF) (NS: System.Windows), y 
  • Windows Forms (WinForms) (NS: System.Windows.Forms)
En las siguientes secciones desglosaremos cada una de estas para conocer sus ámbitos de aplicación, ventajas, y características sobresalientes.

2. ASP.NET

ASP.NET [2] permite la creación de aplicaciones o sitios Web accesibles desde un navegador Web. Estas aplicaciones o sitios Web se ejecutan en un servidor IIS [3]. Entre las características sobresalientes y ventajas de esta tecnología, encontramos:
  • El coste de despliegue de clientes es casi nulo, 
  • Acceso a las aplicaciones desde cualquier platafora (e.g.Linux, Mac OS), 
  • Facilidad de actualizaciones.
ASP.NET también permite desarrollar servicios Web para la interacción con otras tecnologías o lenguajes de programación.

En la Animación 1 se muestra la interactividad con un cliente Web construido con esta tecnología:
Cliente Web ASP.NET
Animación 1. Cliente Web ASP.NET [4].
Por otro lado, existen dos modos básicos para la construcción de páginas dinámicas con ASP.NET:
  • Web Forms: este es el módo tradicional de crear un sitio o aplicación Web utilizando la API de ASP.NET.
  • MVC: Diseñado para aplicaciones que requieren mayor abstracción para niveles de interacción y comportamiento más sofisticados. Para ello es necesario seguir el patrón Model View Controller. La aplicación que se muestra en la Animación 1 es un ejemplo de esta categoría.
Para enriquecer aún más la experiencia del usuario en este tipo de ambiente Web, el programador/desarrollador puede recurrir al so de tecnologías como AJAX [6] para introducir mejores tiempos de respuesta e interactividad.

Respecto a los elementos de programas para construir aplicaciones ASP.NET, en el namepsace System.Web.UI encontramos tipos, enumeraciones, interfaces etc. Este namespace se haya en el assembly System.Web.dll.

3. Silverlight

Silverlight [8] es la apuesta de Microsoft para permitir la ejecución de aplicaciones enriquecidas dentro de un navegador Web. Se le puede comparar con la reconocida solución de Adobe: Flash [8].

En [1] encontramos esta aclaración explícita en qué consiste Silverlight:
"Silverlight is not technically part of the main .NET Framework: it's a separate Framework that includes a subset of the Framework's core features - plus the ability to run as a Web browser plug-in."
Debido a que Silverlight cuenta con un plug-in para navegadores Web, en el intento de visualizar o acceder a una aplicación Silverlight y no tener instalado el plug-in, el navegador Web mostrará un mensaje para su instalación (Figura 1).
Instalación del plugin de Silverlight
Figura 1. Instalación del plug-in de Silverlight.

En la Animación 2 podemos observar un cliente Web enriquecido desarrollado con Silverlight.
Cliente Web enriquecido con Silverlight
Animación 2. Cliente Web enriquecido con Silverlight [9].

4. Metro

La librería Metro [10] fue concebida para el desarrollo de aplicaciones para tablets con el sistema operacional Window 8. En [1] advierten que al igual que Silverlight, Metro no constituye una parte integral de .NET Framework.

Los namespaces de clases para la creación de interfaces de usuario con Metro las encontramos en:
  • Windows.UI, y 
  • Windows.UI.Xaml
En la Figura 2 se muestra una captura de pantalla de la ventana de Inicio de Windows 8.1 basada en el estilo Metro.
Interfaz de usuario basada en Metro
Figura 2. Interfaz de usuario basada en Metro en Windows 8.1.

5. Windows Presentation Foundation (WPF)

A partir de la versión 3.0 de Microsoft .NET FrameworkWindows Presentation Foundation (WPF) fue introducido para la creación de aplicaciones cliente enriquecidas.

WPF se diferencia de su predecesor, Windows Forms, en los siguientes aspectos:
  • Soporte para gráficos avanzados, 
  • Renderizado 3D, 
  • Transparencia de controles real, 
  • Adapatación a diferentes configuraciones de DPI (dots per inch), 
  • Amplio soporte para localización de aplicaciones, 
  • Renderizado a través de DirectX
  • Uso de aceleración de hardware, 
  • Interfaces construidas en el lenguaje XAML.
Namespace con los tipos diseñados para la creación de aplicaciones basadas en WPFSystem.Windows. (Se exceptúa de System.Windows.Forms.)

En la Animación 3 se presenta un cliente de escritorio creado con Windows Presentation Foundation.
Cliente de escritorio basado en WPF
Animación 3. Cliente de escritorio basado en WPF.

6. Windows Forms (WinForms)

Windows Forms (WinForms) está diseñado para la creación de interfaces gráficas de usuario para clientes de escritorio. Esta tecnología de interfaz gráfica está disponible desde la primera versión de Microsoft Framework .NET. Es análogo a Windows Presentation Foundation, pero debido a su concepción ya presenta algunas desventajas [1]:
  • El posicionamiento de controles, además de su tamaño, está dado en píxels; mientras que WPF es capaz de adaptar estas dos características de acuerdo a la configuración DPI del cliente, permitiendo la adaptabilidad del tamaño de los controles y las fuentes, 
  • Bajo rendimiento en renderizado en áreas grandes, 
  • Carencia de transparencia en controles, 
  • Difícil diseño dinámico.
Las clases y demás elementos de programas para esta tecnología se hallan en los namespaces:
  • System.Windows.Forms (assembly System.Forms.dll), y 
  • System.Drawing (assembly System.Drawing.dll).
Demostración de esta tecnología en la Animación 4.
Cliente escritorio con WinForms
Animación 4. Cliente escritorio con WinForms.

7. Conclusiones

Hemos hecho un recorrido por las diferentes tecnologías disponibles para la creación de interfaces gráficas de usuario. Estas tecnologías constituyen APIs concretas y de aplicación. Con estas APIs el programador puede crear las versiones de los clientes de acuerdo al ámbito de ejecución (escritorio o Web).


En el próximo artículo .NET exploraremos las diferentes tecnologías backend: ADO.NET, Windows Workflow, y COM+ y MSMQ.

8. Glosario

  • Aplicación
  • Cliente enriquecido
  • Cliente Web
  • Control
  • DPI
  • GUI
  • Interfaz gráfica de usuario
  • Navegador
  • Píxel
  • Plug-in
  • Servicio Web
  • Web

9. Literatura & Enlaces

[1]: C# 5.0 in a Nutshell by Joseph Albahari and Ben Albahari. Copyright 2012 Joseph Albahari and Ben Albahari, 978-1-449-32010-2.
[2]: ASP.NET - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/ASP.NET
[3]: Internet Information Services - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Internet_Information_Services
[4]: Revenue By Sector - SalesViewer Demo | ASP.NET Controls by DevExpress - https://demos.devexpress.com/RWA/SalesViewer/RevenueBySector.aspx
[5]: ASP.NET MVC Framework - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/ASP.NET_MVC_Framework
[6]: ASP.NET Ajax : Enhanced Interactivity and Responsiveness | The ASP.NET Site - http://www.asp.net/ajax
[7]: Microsoft Silverlight - http://www.microsoft.com/silverlight/
[8]: Adobe Flash - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Adobe_Flash
[10]: Metro (design language) - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Metro_(design_language)
[11]: Windows Presentation Foundation - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Windows_Presentation_Foundation
[12]: Windows Forms - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Windows_Forms


V

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.