stringtranslate.com

Lenguaje de marcado de aplicaciones extensible

Lenguaje de marcado de aplicaciones extensible ( XAML / ˈ z æ m əl / ) es unlenguajedeclarativo XMLMicrosoftpara 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, enlaces de datos y eventos. Sin embargo, en WF, XAML define flujos de trabajo .

Los elementos XAML se asignan directamente a instancias de objetos Common Language Runtime (CLR), mientras que los atributos XAML se asignan a propiedades y eventos CLR en esos 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 necesaria para que las herramientas procesen XAML, ya que se basa en XML. [4]

Tecnología

XAML originalmente significaba Extensible Avalon Markup Language, siendo Avalon el nombre en código 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 interfaces visuales de usuario . WPF permite la definición de objetos tanto 2D como 3D, rotaciones, animaciones y una variedad de otros efectos y características. Un archivo XAML se puede compilar en un archivo de lenguaje de marcado de aplicaciones binarias (BAML), [5] [6] que se puede insertar como un recurso en un ensamblado de .NET Framework. En tiempo de ejecución, el motor del marco extrae el archivo BAML de los recursos del ensamblado, lo analiza y crea un árbol visual o flujo de trabajo de WPF correspondiente.

En contextos de WF, 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 marcado de interfaz de usuario de XAML, pero ahora ya no se distinguen. Sin embargo, la extensión de archivo para los archivos que contienen el marcado de 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 parecida a XBL . [8]

Para crear archivos XAML, se puede utilizar Microsoft Expression Blend , Microsoft Visual Studio , el diseñador visual hospedable WF o XAMLPad. [9]

Ejemplos

Captura de pantalla del desarrollo de una aplicación de Windows Presentation Foundation (WPF) con XAML y C# en Visual Studio 2022

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 su computadora. Si se utiliza 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 de aprovechar al máximo el potencial de XAML es hacer un uso adecuado de los enlaces, así como sentirse cómodo con la creación de sus propios elementos de usuario personalizados según sea necesario, para sus necesidades específicas. Los enlaces se pueden realizar de la siguiente manera:

<TextBox x:Name= "txtInput" /> <TextBlock Text= "{Elemento de enlaceName=txtInput,Path=Text}" />    

Diferencias entre versiones de XAML

Hay tres implementaciones principales de XAML de Microsoft:

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

Aplicaciones XAML en navegadores web

Históricamente, las aplicaciones basadas en XAML se podían ejecutar en algunos navegadores web , como Internet Explorer y Firefox . Esto se podía lograr a través de archivos XBAP creados a partir de aplicaciones WPF o mediante el complemento de navegador Silverlight . Sin embargo, estos dos métodos ahora no son compatibles con todos los navegadores principales debido a su dependencia de la interfaz del complemento de navegador NPAPI , que ya no se fabrica . [13] [14]

Preocupaciones sobre el encierro

En 2007, el Comité Europeo de Sistemas Interoperables (ECIS), una coalición de empresas de software en su mayoría estadounidenses, acusó a Microsoft de intentar secuestrar 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 atroz" y agregó que es poco probable que XAML reemplace alguna vez a HTML. [16]

Véase también

Referencias

  1. ^ "[MS-XAML] Especificación de mapeo 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 agrega XAML a la lista de 'Especificaciones abiertas' – Software Development Times On The Web». Archivado desde el original el 2008-12-11 . Consultado el 2021-04-06 .
  4. ^ "Sintaxis XAML en detalle". Biblioteca de Windows Presentation Foundation . Microsoft . 12 de agosto de 2021 – vía Microsoft Docs .
  5. ^ abc Rob Relyea: enero de 2004 – Publicaciones archivadas el 11 de octubre de 2007 en Wayback Machine
  6. ^ desconocido (30 de julio de 2009). "¿Qué es BAML?". DOTNET Spider. BAML significa lenguaje de marcado de aplicaciones binarias, que es una versión compilada de XAML. Cuando compila su XAML, se crea el archivo BAML.
  7. ^ Andrew, Paul (25 de enero de 2006). "¿XOML o XAML?". Archivo de la comunidad MSDN . Microsoft . Los programas (o modelos) de flujo de trabajo se guardan en el formato XAML, que es común en Avalon para serializar tipos .NET como XML. El XAML de Avalon se centra en la interfaz de usuario y el XAML de flujo de trabajo se centra en el proceso empresarial, por lo que existe una diferencia semántica bastante grande. La extensión de archivo XOML parece permanecer para los modelos de flujo de trabajo, aunque el formato de archivo es 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 Cómo escribir XAML en XamlPad - Herramientas avanzadas para desarrolladores de Windows [Libro]". www.oreilly.com . O'Reilly.
  10. ^ Página de descripción general de XAML de Microsoft en Descripción general de XAML (elemento raíz y xmlns)
  11. ^ "Diferencias de procesamiento de XAML entre las 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 su aplicación tiene como destino Silverlight 3 o Silverlight 4. Los dos analizadores existen en paralelo en Silverlight 4 para lograr 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 de procesamiento de XAML entre versiones de Silverlight". Archivo Silverlight . Microsoft . 17 de noviembre de 2011, a través de 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 técnico 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 los cargos de Vista en la UE". iTWire . Consultado el 22 de agosto de 2013 .
  16. ^ ab Reimer, Jeremy (26 de enero de 2007). «El presidente del comité europeo acusa a Microsoft de secuestrar la web». Ars Technica . Condé Nast . Consultado el 22 de agosto de 2013 .

Enlaces externos