viernes, 6 de noviembre de 2015

Entendiendo XAML (1 de N)

Después de años de aprender por mí misma y tratar de enseñar temas como Windows, Windows Phone y Xamarin Forms, una vez más vuelvo a empezar la travesía de tratar de enseñarlo en mi blog.

La verdad es que después de vivirlo y tener mi propia empresa con proyectos XAML, la parte que no logro entender es como la mayoría de los desarrolladores .NET no ven XAML como una parte obvia de su presente y futuro.

Dicho eso, espero que quienes inicien esta serie da post, si lo vean así, XAML como la posibilidad de programar en cualquier ecosistema Windows Clásico, Windows Store, Windows Phone, XBox, Android, iPhone, el futuro está a un paso.


Disclaimer: Esta serie de post no pretende hacer énfasis profundo sobre temas teóricos, es más bien una guía rápida y práctica. Se asume una comprensión básica de temas de orientación a objetos y C#. Para los ejemplos voy a usar Visual Studio 2015 RC Enterprise, sin embargo pueden usar Visual Studio Community Edition 2015 con propositos educativos.

Bueno empecemos.

XAML (acrónimo pronunciado xammel del inglés eXtensible Application Markup Language, Lenguaje Extensible de Formato para Aplicaciones en español) es un lenguaje declarativo basado en XML.

Si hacemos un pequeño stop y sin entrar en muchos detalles, decir que la base es XAML nos llega a que el "formato" de los elementos que se escriben en XAML, cumple con las normas con las que se escribe XML, es decir:

En XAML tenemos Nodos o Elementos, los cuales se abren con el nombre del nodo y se cierran igual. Estos nodos pueden tener o no contenido, veamos unos ejemplos:


Observa como además se pueden escribir comentarios en XML y como un nodo puede contener otros nodos formando así una jerarquia.


Cada nodo puede tener propiedades clave/valor, que siempre sin importar su tipo serán escritas como strings.


Si crean un proyecto XAML para cualquier tecnología y en cualquier herramienta, generalmente encontrarán algo como esto:


La imagen, ya no dería confundir o asustar, es XML, hay nodos y propiedades, algunos nombres de propiedades se ven un poco diferentes, y algunos simples como los que vimos antes, pero no son más que propiedades, y de la misma forms los valores de las propiedades tambien lucen algunos normales y otros raros, e incluso Visual Studio los dibuja con colores diferentes, pero siguen siendo strings.

Esas parte que vemos un poco extrañas son XAML y vamos a ir entendiendolas parte por parte, sin embargo, no debemos perder de vista que no es más que XML y que en todas partes debe seguir las normas básicas que observamos en los ejemplos, abrir y cerrar los tags, y poner los valores de las propiedades entre comillas. Si eres nuevo en esto, seguramente seguir estas dos reglas para empezar te ayudará mucho a no equivocarte.

¿Por qué complicarse usando XAML para construir interfaces? 

Por excelentes ejemplos como el HTML está probado que tener un lenguaje de marcas permite la separación entre las tareas de diseño y la programación, situación que es muy requerida hoy en día para mejorar y acelerar los tiempos de construcción, delegando tareas a equipos especializados en cada una de estas partes, ya que no es lo más común que una misma persona tenga tanto habilidades para codificar como para diseñar.

¿Significa eso que estamos aprendiendo algo para diseñadores? Quizá, pero sucede que a diferencia de HTML no existen tantos diseñadores que sepan XAML por lo tanto como programadores es seguro que nos tocará construir ambas partes y por lo tanto entenderlo de pies a cabeza, como nos corresponde con HTML.

¿Para que aprender XAML si morirá como Silverlight?

Aclaro que hago está pregunta de forma arbitraria por que es lo que mucha gente se pregunta o simplemente muchos corren el rumor sin siquiera entender la diferencia entre XAML y Silverlight.

Asegurar que XAML no morirá nunca, es algo que no puedo hacer, que no morirá pronto es seguro. WPF fue el primer producto que usó XAML como lenguaje de marcas para aplicaciones de escritorio, luego lo hizo Silverlight. Este producto era la apuesta de Microsoft para la Web robusta y con experiencia enriquecida. Lo que fue claro con el tiempo es que HTML, CSS y JS mandan en cuanto a Web se refiere y por eso es que no solo Silverlight murió como producto, si no que además lo hizo Flash quien está en desuso.

XAML sin embargo no corrió con la suerte de Silverlight por que no es un producto, es un lenguaje que puede ser usado en varias tecnologías, WPF hoy sigue existiendo, y además en los productos estrella de Microsoft como Windows Phone y Windows, XAML se usa como tecnología principal para construir aplicaciones. Hoy en día además se promueve XAML para construir aplicaciones para XBOX y también es posible construir aplicaciones para Android y iOS usando XAML con Xamarin Forms.

¿Morir? ¿En serio? No, no por ahora, aprender XAML hoy en día es una gran inversión para un desarrollador .NET y de hecho es la razón por la que vuelvo a iniciar de cero, con una visión más amplia y un paso más lento que lo que lo hice alguna vez en mi blog anterior.

Espero que lo vayan disfrutando, XAML es XAML, si aprendes todas sus reglas, trucos y demás, básicamente hoy en día serás facilmente un desarrollador nativo en cualquiera de las tecnologías que mencioné antes, y saben... esa posibilidad no la tiene ningun desarrollador de ninguna otra tecnología.

Así que espero que esta serie los ayude a empezar y a emocionarse con XAML tanto como yo.

Nos vemos en la próxima.


No hay comentarios: