sábado, 22 de junio de 2013

C# y Windows Runtime

A medida que los desarrolladores y sistemas operacionales (como Microsoftmejoran su arquitectura para responder a los cambios y necesidades del sector tecnológico, y por supuesto, la presentación de características innovadoras para diferenciarse de la competencia. Otra particularidad, que puede distinguirse es la integración con las plataformas de desarrollo, para este caso, con .NET Framework para la creación de aplicaciones más atractivas, robustas y poderosas.

Para este caso, Windows Runtime (o WinRT) es la evolución de las antiguas API (Win32) de desarrollo; que ofrece mejor integración y funcionalidad con los lenguajes de programación que ofrece todo .NET Framework. Inclusive como una mejora de COM (Component Object Model).


A continuación haré una descripción breve de lo que es WinRT, su relación con .NET Framework, dependencia del WinRT con las versiones más recientes de Microsoft Windows, la adaptación a través de perfiles para dispositivos con bajo poder de cómputo, ocultación de tipos del Framework para reducir la curva de aprendizaje para desarrolladores nuevos.

- ¿Qué es Windows Runtime (WinRT)?:


De acuerdo a [2], es un un conjunto de librerías no-gestionadas que son útiles para el desarrollo de aplicaciones táctiles para la interfaz Metro. Estas librerías vienen con Windows 8, y son consumibles por lenguajes compatibles (interoperabilidad) con .NET.

Otras definiciones: [1], [3], [4]


- Relación de WinRT con .NET:


Muchas de las librerías de WinRT proveen funcionalidad para la creación de interfaces tácticales, capacidad para responder a las características (acelerómetro, mensajería, sensores de proximidad, entre otros) de dispositivos móviles. Debido a que .NET posee mucha de estas características, es decir, que se crea una superposición entre estas capacidades/características, Visual Studio integra perfil de referencias (reference profile [5]) que se encargan de ocultar porciones de funcionalidad, tipos y miembros, del .NET. Esto resulta útil cuando creamos aplicaciones para dispositivos (tablets, smartphones, etc.) de bajo poder de cómputo, lo cual nos conduce a incorporar sólo los assemblies necesarios para la ejecución de la aplicación y su funcionamiento.

- ¿Para qué sirve ocultar parte de las capacidades/características de .NET Framework?:
  • Protección en sandbox del host (reducción del impacto del malware).
  • Acortamiento de la curva de aprendizaje de la plataforma .NET.
  • Adecuado para dispositivos de bajo rendimiento.

- COM vs WinRT:

  • WinRT proyecta sus librerías para lenguajes como VB.NET, C#, C++ y JavaScript.
  • Con WinRT cada lenguaje sigue las resoluciones de nombres (capitalización, por ejemplo), mapeo de funciones e interfaces.
  • Los assemblies de WinRT (con descripción en metadata: .winmd) son similares a los de .NET. Esto permite consumir el framework de manera transparente, sin necesidad de recurrir a técnicas confusas de instanciación.
  • Los tipos incluidos en las librerías de WinRT resultan tan fáciles de usar como cualquier tipo de .NET.

Conclusiones:

WinRT sólo es un juego adicional que no reemplaza .NET Framework. Ya que este último sigue teniendo las mayores ventajas, como:


  • No es necesario que los programas corran en un sandbox.
  • Los programas pueden utilizar todo el Framework, y librerías de terceros.
  • La distribución de aplicaciones no sólo se pueden distribuir por la Windows Store.
  • No es necesario tener la última versión del sistema operativo para la ejecución de las aplicaciones .NET Framework.

Glosario

- API
- COM
- Metro style
- Reference assembly
- Reference profile
- Visual Studio
- Win32
- WinRT

Referencias:


[1] Windows Runtime (WinRT) - http://en.wikipedia.org/wiki/Windows_Runtime
[2] C# 5.0 in a Nutshell by Joseph Albahari and Ben Albahari. Copyright 2012 Joseph Albahari and Ben Albahari, 978-1-449-32010-2.

No hay comentarios:

Publicar un comentario

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