Windows 8: Lo que deberías saber y nadie te ha contado - WarNov Developer Evangelist - Site Home - MSDN Blogs

Windows 8: Lo que deberías saber y nadie te ha contado

Windows 8: Lo que deberías saber y nadie te ha contado

Rate This
  • Comments 7

Ya a estas alturas del partido, sabrás que con Windows 8 vienen grandes innovaciones dentro de este sistema operativo. Eso, si es que no lo has probado por tu propia cuenta, bajándolo gratuitamente de aquí. Cualquier máquina que corra Windows 7, te servirá para probarlo.

La innovación más grande por su puesto es la inclusión del ambiente de Interfaz Moderna

clip_image002

En pocas palabras, el ambiente de Interfaz Moderna está orientado a ser amigable en dispositivos con touch screen. Específicamente Tablet PCs y Slates:

Ojo: que esto no quiere decir que el desktop tradicional haya desaparecido. Este sigue existiendo y también ha evolucionado con muchas mejoras como un Explorer con Ribbon, copia de archivos optimizadas, soporte a USB3 para velocidades de transferencia impensables y otras más que pueden encontrar en el blog oficial de Windows para usuarios finales.

Desktop8

 

Desde el punto de vista de un desarrollador, el ambiente desktop no tiene muchos cambios radicales a nivel de presentación de nuestras aplicaciones. Habría que tener sin embargo en cuenta las novedades de la nueva versión del Framework .NET que viene con Windows 8, que es la 4.5 y que entre otras cosas interesantes, tiene la inclusión de Async, que nos permite crear interfaces fluidas de una manera más sencilla. Sin embargo, básicamente podemos pensar en estos cambios como sencillamente un par de librerías más por aprender.

El cambio radical está en la interfaz Moderna:  aunque es radical solo en estructura; pues como veremos, la programación es la misma. De hecho, si ya sabes .NET y XAML o HTML y Javascript, ya sabes programar para Windows 8 en Interfaz Moderna!

Pero antes de describir estos cambios estructurales consideremos el por qué de aplicaciones de Interfaz Moderna o Windows Store Apps, como son más conocidas, ya que estas apps solo van a estar disponibles a través de una tienda online llamada el Windows Store. Es evidente que la movilidad se ha vuelto supremamente importante hoy en día y que todos queremos tener un sistema operativo fácil de transportar. Hemos visto que estas características son ofrecidas por los tablets y slates. Que estos en general no poseen teclado, sino que son muy basados en touch. Entonces, necesitábamos una versión de Windows adecuada para estos escenarios. Esto sin mencionar que la durabilidad de la batería es súper importante. Queremos que nuestro dispositivo aguante aunque sea todo un día de trabajo sin necesidad de ser conectado a la electricidad. Pero para lograr esto, requerimos de procesadores y discos duros que no consuman tanta energía y de un diseño de aplicaciones que las permita suspender de manera óptima para ahorrar hasta el último vatio cuando no se estén usando.

Existe un tipo de procesador que tiene un consumo supremamente bajo de energía y que fácilmente puede garantizar 8 horas de funcionamiento. Es el procesador ARM.

Cómo pueden garantizar esto? Pues teniendo un conjunto de instrucciones reducido en comparación con los procesadores de arquitectura x86 o x64 a los que estamos acostumbrados en nuestras PCs. Es un precio que hay que pagar para lograr durabilidad. Pero si lo vemos bien, un rediseño del sistema operativo pensando en aplicaciones fácilmente suspendibles y en la eliminación de características que no son muy necesarias en un dispositivo móvil, sumado a la inclusión de hardware especial como los discos duros de estado sólido, nos permite tener un aparato que funciona como lo necesitamos y con la duración requerida. Como si fuera poco, por añadidura cuando logramos esto, tenemos un sistema operativo que arranca y está listo para usarse en tiempo de solo 3 segundos!!! Lo cual es una característica súper importante para la movilidad.

En síntesis, se requería un ambiente de aplicaciones amigables al tacto, que corrieran de manera óptima en procesadores ARM (y por ende en procesadores de arquitectura tradicional) y que además ofreciera muchas facilidades para tener una experiencia de usuario impactante.

Y precisamente eso es lo que ofrece la interfaz Moderna.

Esta gran iniciativa nuestra no para con la creación del sistema operativo y la habilitación de excelentes dispositivos móviles que lo usan. También dispondremos de un marketplace: Windows Store. Diseñado específicamente para enriquecer el ecosistema de Windows Store Apps que se van a empezar a requerir bajo este nuevo esquema. Aplicaciones innovadoras, muy atractivas para el usuario que van a poder ser vendidas y compradas de una manera muy sencilla a través del store. Cualquier desarrollador desde su casa va a poder crear su aplicación, subirla al atore y empezar a recibir ganancias por ella, muy al estilo de Windows Phone. Y en este caso, para Colombia tenemos garantizado el acceso al store. Somos uno de los pocos países de Latinoamérica con este privilegio.

Visto lo visto, supongo que ahora estarás preguntándote cómo crear estas Windows Store Apps…

Como te dije antes, si sabes .NET; en especial Silverlight, entonces ya sabes crearlas!!! Además, no necesitas ser un desarrollador experimentado en .NET para lograrlo. Si sabes HTML y Javascript, también el desarrollo de este tipo de aplicaciones está a la mano. Así que si has desarrollado sitios web por algún tiempo con cierta carga de Javascript, también estás listo para arrancar! De hecho si tu experiencia es en C++, también hay cabida para ti.

Lo único necesario es aprender un par de librerías más; tarea nada difícil, teniendo en cuenta que el intellisense es completo para todos los lenguajes aceptados en la plataforma de desarrollo para Interfaz Moderna.

Entonces, ya sabiendo que a nivel de desarrollo todo funciona de una manera familiar, entremos un poco más y aprendamos realmente cuál es la plataforma sobre la que están las Windows Store Apps.

WinRT

WinRT es la abreviación de Windows Runtime. Y es la plataforma sobre la cual se programan aplicaciones de tipo Interfaz Moderna para Windows 8.

WinRT NO está basada en .NET. De hecho, WinRT está al nivel del API nativa de Windows por excelencia que es Win32. WinRT accede nativamente al Kernel de Windows, ofreciendo gran velocidad de ejecución por un lado y por otro una abstracción muy útil para poder acceder a todos los recursos del sistema a través de un paradigma orientado totalmente a objetos, de una manera extremadamente sencilla.

.NET tradicional trataba de solventar esta tarea… pero alguna vez trataron de acceder a la webcam de su máquina para obtener una sencilla foto? Si es así de seguro recordaran lo divertido que es hacer los DLLIMPORT requeridos para traer APIs de WIN32.

Con WinRT estos llamados ya no son necesarios, pues la conexión ya es directa y se logra completamente a través de objetos ya existentes en la plataforma.

WinRT está basado en 33 APIs nativas con las que se puede acceder al core de sistema operativo. Como se aprecia, están divididas en 5 grandes grupos: Fundamentales, Dispositivos, Media, Comunicaciones y Datos e Interfaz de Usuario.

clip_image007

En general WinRT se presenta como la base sólida y eficiente para construir Windows Store Apps.

De acuerdo a lo anterior, si equiparamos a WinRT con .NET tradicional, tendríamos una gráfica como la siguiente:

clip_image009

Como lo había mencionado vemos que WinRT (la zona verde) accede directamente al Kernel de Windows, de igual forma que lo hace .NET, Win32 e Internet Explorer. Vemos sin embargo que estos últimos van a estar destinados para las aplicaciones de escritorio tradicionales, con los conocimientos que ya tenemos.

WinRT está basado en un modelo de aplicaciones (Application Model) en el cual cada aplicación es una clase como tal (contenedora de otras clases), que son instanciadas por el proceso WWAHost.exe que es el encargado de administrar funciones como la suspensión. Cada aplicación es instanciada por un WWAHost independiente, a través del ejecutable de la aplicación que aparece como miaplicación.exe, pero tiene el comportamiento particular de luego lanzar el Host:

image

Esto me recuerdo mucho el viejo esquema de COM; y efectivamente muchos de los conceptos de WinRT provienen de allí, excepto que ya no usamos un acercamiento basado en interfaces sino basado en objetos. Además tenemos variedad de lenguajes gracias a las proyecciones y también nos podemos olvidar del DLL Hell, gracias a la metadata que aún conservan los componentes de WinRT, que son una gran herencia de .NET, que por su puesto sigue su camino en aplicaciones de escritorio convencionales, así como en las capas de backend y servicios en los sistemas n-layer.

Vemos que sobre este modelo de aplicaciones tenemos todas las apis que describí anteriormente y que básicamente nos permiten acceder a los recursos del sistema y a librerías que nos facilitan el desarrollo de nuestras aplicaciones.

Sobre las apis, ya podemos extender nuestras proyecciones de lenguaje que nos permiten acceder a ellas de distintas maneras, de acuerdo a nuestros gustos. Si somos familiares con Silverlight y .NET, usamos VB o C#. También podemos usar C++ o si venimos del mundo Web, podemos usar Javascript que usa el motor Chakra. El mismo de Internet Explorer.

Finalmente, sobre estas proyecciones de lenguaje ofrecemos los lenguajes de marcado para poder crear interfaces declarativamente. No es más que el típico XAML que conocíamos de WPF, Silverlight y WP7 para cuando usemos C#, VB e interesantemente C++. SI algo recuerdo con pena y dolor de C++, es la creación de interfaces gráficas a punta de C++. Era algo completamente dispendioso, complicado y propenso a errores. Ahora tenemos todo el poder nativo de C++, complementado por el poder declarativo de XAML para la UI.

En el caso de Javascript, naturalmente el lenguaje de presentación viene a ser HTML acompañado de CSS para la definición de estilos. Esto obviamente hará muy fácil traducir aplicaciones HTML5 para web, a aplicaciones HTML para Windows Store.

.NET y WinRT

Ya vimos que básicamente estos son dos stacks distintos dentro de Windows. Sin embargo, dado que WinRT ofrece proyecciones de lenguaje para C# y VB, el resultado es que la mayoría de librerías de .NET tienen su equivalente en WinRT. Algunos métodos tienen diferencias sutiles y encontramos nuevas librerías en WinRT que mejoran el acceso a dispositivos y recursos del sistema. De hecho es posible para nosotros crear componentes en .NET que puedan ser consumidos por WinRT, siempre y cuando usen las librerías del Namespace Windows.

Componentes en WinRT

En WinRT podemos crear componentes que pueden ser reutilizados en otras apps WinRT. Todos los componentes y aplicaciones generan una metadata que permite un versionamiento transparente y la garantía de que las aplicaciones correrán correctamente en el futuro.

Cómo comenzar con WinRT y Windows 8?

Es muy sencillo y free, solo tienes que bajarte tu versión de desarrollador de Windows 8 que además incluye las herramientas de desarrollo que en este caso es Visual Studio 2011, de este link.

Además para más recursos y videos instructivos, les recomiendo visitar el sitio oficial de Windows para desarrolladores: http://buildwindows.com y http://dev.windows.com. Para saber más de Windows Store Apps: http://msdn.microsoft.com
/windows/apps
. Para comentar y resolver dudas: http://forums.dev.windows.com. Para saber más del marketplace: http://blogs.msdn.com/b/windowsstore; para saber más de características de usuario final de sistema operativo, visiten el blog oficial. Y para obetener la información de primera mano desde las redes sociales:

Facebook (developer)

http://fb.windows.com/developers

Twitter (@b8)

http://twitter.com/BuildWindows8

Twitter (@windevs)

https://twitter.com/windevs

YouTube (developer)

http://www.youtube.com/user/WindowsVideos

Leave a Comment
  • Please add 2 and 5 and type the answer here:
  • Post
  • Que buen documento, muchas gracias :D aunque deberías actualizar la tercera imagen :D

  • muy buen post camarada!!!

    Salu2 desde mèxico!!!

  • me parece fasinante la creacion del ambien metro style para personas q no tienen mucho conocimiento de windows se les ba a seer mas fasil interactuar con sus aplicativos o paginas frecuentes y el windows store es algo fasinante para todos los programadoresya q pueden recibir ganacias de sus desarrollos

  • me parece algo muy fascinante la creación de metro style para personas q no tienen mucho conocimiento con Windows ya que esto les va a permitir ver el sistema más sencillo de usar y la creación de Windows store es fascinante para todos los programadores de .net y html

  • interesante pero tengo que instalar el Windows 8 en mi pc o se puede con Windows 7

  • Es interesante contar con una plataforma autónoma de desarrollo como lo es metro style y que sin embargo está muy relacionada con .NET, donde la compatibilidad entre WinRT y .NET es indispensable, y si agregamos que Colombia es privilegiada en tener acceso al store para vender y comprar aplicaciones pues bienvenido y manos a la obra.

  • como andas, tengo instalado el Windows 8 RTM ,  tengo un problema al instalar Visual Studio 2012, me pide siempre framework 4.5. siendo que ya viene instalado en Windows 8 RTM. hay alguna solucion para eso?

Page 1 of 1 (7 items)