Articulo de referencia

Lenguaje de marcado de aplicaciones extensible

.xaml "},"mime":{"wt":"application/xaml+xml"},"type code":{"wt":""},"uniform type":{"wt":""},"magic":{"wt":""},"owner":{"wt":"[[Microsoft]]"},"released":{"wt":"{{Start date and ...

Lenguaje de marcado de aplicaciones extensible ( XAML / ˈ z æ m əl / ) es unlenguajedeclarativoXMLMicrosoftpara inicializar valores y objetos estructurados. Está disponible bajola Promesa de Especificación Abierta. [ 3 ]

XAML se utiliza ampliamente en Windows Presentation Foundation (WPF), Silverlight , Workflow Foundation (WF), Windows UI Library (WinUI), Universal Windows Platform (UWP) y .NET Multi-platform App UI (.NET MAUI). En WPF y UWP, XAML es un lenguaje de marcado de interfaz de usuario para definir elementos de la interfaz de usuario, enlace de datos y eventos. En WF, sin embargo, XAML define flujos de trabajo .

Los elementos XAML se corresponden directamente con instancias de objetos de Common Language Runtime (CLR), mientras que los atributos XAML se corresponden con propiedades y eventos CLR en dichos objetos.

Todo lo que se crea o implementa en XAML se puede expresar utilizando un lenguaje .NET más tradicional, como C# o Visual Basic .NET . Sin embargo, un aspecto clave de la tecnología es la menor complejidad que requieren las herramientas para procesar XAML, ya que se basa en XML. [ 4 ]

Tecnología

XAML originalmente significaba Extensible Avalon Markup Language, siendo Avalon el nombre en clave de Windows Presentation Foundation (WPF). [ 5 ] Sin embargo, antes de finalizar el desarrollo de .NET Framework 3.0, Microsoft adoptó XAML para Workflow Foundation (WF). [ 5 ]

En WPF, XAML describe las interfaces visuales de usuario . WPF permite definir objetos 2D y 3D, rotaciones, animaciones y una variedad de otros efectos y características. Un archivo XAML se puede compilar en un archivo BAML ( Binary Application Markup Language ), [ 5 ] [ 6 ] que se puede insertar como recurso en un ensamblado de .NET Framework. En tiempo de ejecución, el motor del framework extrae el archivo BAML de los recursos del ensamblado, lo analiza y crea un árbol visual o flujo de trabajo WPF correspondiente.

En contextos de flujos de trabajo, XAML describe lógica declarativa potencialmente de larga duración, como la creada por herramientas de modelado de procesos y sistemas de reglas. El formato de serialización para flujos de trabajo se denominaba anteriormente XOML para diferenciarlo del uso de XAML en el marcado de la interfaz de usuario, pero ahora ya no se distinguen. Sin embargo, la extensión de archivo para los archivos que contienen el marcado del flujo de trabajo sigue siendo ".xoml". [ 7 ]

XAML utiliza una forma específica de definir la apariencia llamada Plantillas ; a diferencia de la sintaxis de Hojas de Estilo en Cascada , es más cercana a XBL . [ 8 ]

Para crear archivos XAML, se podría usar Microsoft Expression Blend , Microsoft Visual Studio , el diseñador visual WF alojable o XAMLPad. [ 9 ]

Ejemplos

Este ejemplo de Windows Presentation Foundation muestra el texto "¡Hola, mundo!" en el contenedor XAML de nivel superior llamado Canvas.

<Canvas xmlns= "http://schemas.microsoft.com/client/2010" xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml" > <TextBlock> ¡Hola, mundo! </TextBlock> </Canvas>

xmlns="http://schemas.microsoft.com/..."Es posible que sea necesario cambiar el esquema (la parte) para que funcione en algunos equipos. Utilizando un esquema recomendado por Microsoft, el ejemplo también puede ser [ 10 ].

<Canvas xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" > <TextBlock> ¡Hola, mundo! </TextBlock> </Canvas>

Una parte crucial para aprovechar al máximo el potencial de XAML es hacer un uso adecuado del enlace de datos, así como crear elementos de usuario personalizados según sea necesario. El enlace de datos se puede realizar de la siguiente manera:

<TextBox x:Name= "txtInput" /> <TextBlock Text= "{Binding ElementName=txtInput,Path=Text}" />

Diferencias entre versiones de XAML

Existen tres implementaciones principales de XAML por parte de Microsoft:

Estas versiones presentan algunas diferencias en el comportamiento de análisis. [ 11 ] Además, el analizador XAML de Silverlight 4 no es 100% compatible con versiones anteriores de archivos Silverlight 3. Los archivos XAML de Silverlight 3 pueden ser rechazados o analizados de manera diferente por el analizador de Silverlight 4. [ 12 ]

Además de las implementaciones de Microsoft, también existe OpenSilver (anteriormente conocida como CSHTML5), una implementación de tecnología web contemporánea.

Aplicaciones XAML en navegadores web

Históricamente, las aplicaciones basadas en XAML podían ejecutarse en algunos navegadores web , como Internet Explorer y Firefox . Esto se lograba mediante archivos XBAP creados a partir de aplicaciones WPF o mediante el complemento de navegador Silverlight . Sin embargo, ninguno de estos métodos es compatible actualmente con los principales navegadores debido a su dependencia de la interfaz de complemento de navegador NPAPI , que ya no se utiliza . [ 13 ] [ 14 ]

Preocupaciones por la dependencia del proveedor

En 2007, el Comité Europeo para Sistemas Interoperables (ECIS), una coalición de empresas de software mayoritariamente estadounidenses, acusó a Microsoft de intentar apropiarse de HTML y reemplazarlo con XAML, creando así una dependencia del proveedor . [ 15 ] [ 16 ] Jeremy Reimer, escribiendo para Ars Technica, describió este comentario como "el error más grave" y añadió que es improbable que XAML llegue a reemplazar a HTML. [ 16 ]

Véase también

Referencias

  1. " [ MS-XAML ] Especificación de asignación de objetos XAML 2006" (PDF) . Microsoft . Junio ​​de 2008.
  2. "Lenguaje de marcado de aplicaciones extensible (XAML)" . Microsoft . 12 de marzo de 2019.
  3. Worthington, David. "Microsoft añade XAML a la lista de 'Especificaciones Abiertas' – Software Development Times On The Web" . Archivado del original el 11 de diciembre de 2008. Consultado el 6 de abril de 2021 .
  4. "Sintaxis XAML en detalle" . Biblioteca Windows Presentation Foundation . Microsoft . 12 de agosto de 2021 vía Microsoft Docs .
  5. 1 2 3 Rob Relyea  : enero de 2004 – Publicaciones
  6. desconocido (30/07/2009). "¿Qué es BAML?" . DOTNET Spider. BAML significa Binary Application Markup Language, que es una versión compilada de XAML. Cuando compilas tu XAML, se crea el archivo BAML.
  7. Andrew, Paul (25 de enero de 2006). "¿xoml o xaml?" . Archivo de la comunidad MSDN . Microsoft . Archivado del original el 28 de noviembre de 2020. Los programas (o modelos) de flujo de trabajo se guardan en formato XAML, que es común en Avalon para serializar tipos .NET como XML. Avalon XAML se centra en la interfaz de usuario y Workflow XAML en los procesos de negocio, por lo que existe una diferencia semántica considerable. La extensión de archivo XOML parece mantenerse para los modelos de flujo de trabajo, aunque el formato de archivo sea XAML.
  8. Guthrie, Scott (22 de febrero de 2008). "Tutorial de Silverlight, parte 7: Uso de plantillas de control para personalizar la apariencia de un control" . Blog de ScottGu .
  9. Avery, James; Holmes, Jim. "3.3 Escritura de XAML en XamlPad - Herramientas avanzadas para desarrolladores de Windows [ Libro ] " . www.oreilly.com . O'Reilly.
  10. Página de información general de Microsoft XAML en Información general de XAML (Elemento raíz y xmlns)
  11. "Diferencias en el procesamiento de XAML entre versiones de Silverlight y WPF" . Archivo de Silverlight . Microsoft . 17 de noviembre de 2011 vía Microsoft Docs . Silverlight incluye un analizador XAML que forma parte de la instalación principal de Silverlight. Silverlight utiliza diferentes analizadores XAML según si la aplicación está dirigida a Silverlight 3 o Silverlight 4. Los dos analizadores coexisten en Silverlight 4 para garantizar la compatibilidad. En algunos casos, el comportamiento de análisis de XAML en Silverlight difiere del comportamiento de análisis en Windows Presentation Foundation (WPF). WPF tiene su propio analizador XAML.
  12. "Diferencias en el procesamiento de XAML entre versiones de Silverlight" . Archivo de Silverlight . Microsoft . 17 de noviembre de 2011 vía Microsoft Docs .
  13. adegeo. "Preguntas frecuentes sobre la compatibilidad con XBAP" . learn.microsoft.com . Consultado el 16 de mayo de 2024 .
  14. nakarnam (16 de marzo de 2020). "Fin del soporte de Silverlight - Ciclo de vida de Microsoft" . learn.microsoft.com . Consultado el 16 de mayo de 2024 .
  15. Beer, Stan (28 de enero de 200). "Microsoft se enfrenta a cargos de la UE por Vista" . iTWire . Consultado el 22 de agosto de 2013 .
  16. 1 2 Reimer, Jeremy (26 de enero de 2007). "El presidente del comité europeo acusa a Microsoft de secuestrar la web" . Ars Technica . Condé Nast . Recuperado el 22 de agosto de 2013 .
  • Referencia del lenguaje XAML
  • XAML para UWP: Descripción general
  • XAML para WPF: Descripción general
  • Espacio de nombres System.Windows.Markup
  • Espacio de nombres System.Xaml