XAML (Extensible Application Markup Language, pronunciado zammel) es un lenguaje de marcación usado para instanciar objetos .NET. Aunque XAML es a tecnología que puede ser aplicada a muchos diferentes dominios de problemas, fue inicialmente diseñado como parte de Windows Presentation Foundation (WPF), donde le permite a los desarrolladores de aplicaciones Windows construir interfaces de usuario ricas. Usted usará el mismo concepto para contruir las interfaces de usuarios para sus aplicaciones Silverlight. Conceptualmente, XAML juega un papel muy parecido a HTML o mejor dicho es más cercano al más estricto XHTML. XHTML le permite definir los elementos que forman una página web común. De manera similar, XAML le permite definir los elementos que conforman un área de contenido XAML. Para manipular elementos XHTML en una página XHTML, usamos JavaScript del lado del cliente. Para manipular elementos XAML, escribimos código VB o C# del lado del cliente. XAML and XHTML comparten muchas convenciones de sintáxis, ya que como XHTML, XAML es un lenguaje basado en XML que consiste en elementos que pueden ser anidados de la manera que quiera.

Conceptos básicos de XAML

El estándar XAML es bastante sencillo una vez que se comprenden algunas reglas básicas:

  • Cada elemento en un documento XAML mapea a una instancia de una clase de Silverlight. El nombre del elemento coincide con el nombre de la clase exactamente. Por ejemplo, el elemento <Button> instruye a Silverlight para crear un objeto Button.
  • Al igual que con cualquier documento XML, puede anidar un elemento dentro de otro. El anidamiento expresa contención, por ejemplo, si encontramos un elemento Button dentro de un elemento Grid, la interfaz de usuario incluirá un Grid que contendrá en su interior del botón.
  • Puede configurar las propiedades de cada clase a través de atributos. Sin embargo, en algunas situaciones, un atributo no es lo suficientemente potente como para manejar el trabajo. En estos casos, usamos etiquetas anidadas con una sintaxis especial.
Si usted nunca usó XML y no lo conoce, seguramente le será muy provechoso reveer los conceptos básicos de XML, antes de estudiar XAML. (Vea los artículos en el apartado XML en La escuela del Programador o lea un tutorial o libro básico de XML

Primeramente veamos un documento XAML que representa una página en blanco, tal como la crea Visual Studio cuando creamos un Proyecto de Aplicación Silverlight: (Las líneas están numeradoas sólo para una rápida referencia)

1 <UserControl x:Class="SilverlightApplication1.MainPage"
2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
6 mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
7
8 <Grid x:Name="LayoutRoot">
9 </Grid>
10 </UserControl>

Este documento sólo incluye 2 elementos: El elemento de nivel superior UserControl, que envuelve todo el contenido Silverlight en la página, y el Grid, en dónde usted ubicará sus elementos. Como en todo documento XML, puede haber sólo un elemento de nivel superior o raíz. En el ejemplo previo, esto significa que tan pronto como usted cierra el elemento UserControl con la etiqueta </UserControl>, termina el documento y no puede haber más contenido después de esa etiqueta. Para recordar las reglas que rigen XML, vea el artículo Reglas que debe seguir un documento XML bien formado.

Espacios de Nombre XAML

Cuando usa un elemento como el <UserControl> en un archivo XAML, el analizador de Silverlight reconoce que desea crear una instancia de la clase UserControl. Sin embargo, no necesariamente sabe que clase UserControl usar. Incluso si los espacios de nombres de Silverlight incluyen una sola clase con ese nombre, no hay garantía de que usted no vaya a crear una clase con ese mismo nombre por su cuenta. Por eso, es necesaria una manera de indicar la información del espacio de nombres de Silverlight con el fin de utilizar un elemento. En Silverlight, las clases se resuelven mediante la asignación de espacios de nombres XML a espacios de nombres de Silverlight. En el ejemplo mostrado arriba, se definen 4 namespaces:

2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

El atributo xmlns es un atributo especializado en el mundo de XML, y es usado para declarar namespaces. El fragmento mostrado arriba, declara 4 espacios de nombre que usted encotrará en cada página que cree con Visual Studio o con Expression Blend.

Los espacios de nombres XML se declaran mediante atributos. Estos atributos se pueden colocar dentro de cualquier etiqueta de inicio de cualquier elemento. Sin embargo, la convención establece que todos los espacios de nombres que necesita usar en un documento, deben ser declarados en la primera etiqueta, como están declarados en nuesto código ejemplo. Una vez que declaramos un espacio de nombres, podemos utilizarlo en cualquier parte del documento.

 

 

 


Espacios de nombres básicos de Silverlight

Continuará pronto...

respag
Panamá - © 2012
Haga su donación para colaborar con La Escuela del Programador

La Escuela del Programador es un sitio web sin anuncios, sin ánimo de lucro, no es un sitio web comercial. Es el sueño de compartir con todos, muchos años de una gran pasión. Si realmente encuentra este sitio útil y lo aprovecha, le pido su generosa y no importa cuán modesta colaboración, simplemente para afrontar los costos de mantener este sitio disponible en internet.
No deseo lucrar con este sitio, ya que lo hago desinteresadamente, sólo le pido que, si puede, aporte (desde un dólar hasta lo que crea que puede dar), para afrontar los costos de dominio y hosting. Muchísimas gracias y ojalá juntos podamos hacer un sitio que sea una buena fuente de aprendizaje de programacíon en español.

Si no se siente en condiciones de colaborar, igualmente será bienvenido al sitio, es libre para todos y será un placer que encuentre mis artículos provechosos, pero si realmente me ayuda con una donación minima, seguramente, colaborará para que La Escuela del Programador se mantenga en la Web y crezca, conviertiendo a este sitio hecho con mucha pasión, dedicación y esfuerzo, en una buena fuente de aprendizaje.

Mis saludos cordiales y gracias por interesarse en mi sitio.

Rubén E. Spagnuolo
respag
Panamá - © 2012