Расширяемый язык разметки приложений

Язык, разработанный Microsoft для инициализации структурированных значений и объектов
Расширяемый язык разметки приложений (XAML)
Расширение имени файла
.xaml
Тип интернет-СМИ
приложение/xaml+xml
РазработаноМайкрософт
Первоначальный выпускНоябрь 2006 г .; 18 лет назад [1] ( 2006-11 )
Последний релиз
v2019
12 марта 2019 г. ; 5 лет назад [2] ( 2019-03-12 )
Тип форматаЯзык разметки пользовательского интерфейса
Расширенный отXML

Расширяемый язык разметки приложений ( XAML / ˈ z æ m əl / ) —декларативный XML, разработанныйMicrosoftдля инициализации структурированных значений и объектов. Он доступен в соответствии с Microsoft'sOpen Specification Promise.[3]

XAML широко используется в Windows Presentation Foundation (WPF), Silverlight , Workflow Foundation (WF), Windows UI Library (WinUI), Universal Windows Platform (UWP) и .NET Multi-platform App UI (.NET MAUI). В WPF и UWP XAML — это язык разметки пользовательского интерфейса для определения элементов пользовательского интерфейса, привязки данных и событий. Однако в WF XAML определяет рабочие процессы .

Элементы XAML напрямую сопоставляются с экземплярами объектов Common Language Runtime (CLR), тогда как атрибуты XAML сопоставляются со свойствами и событиями CLR этих объектов.

Все, что создано или реализовано в XAML, может быть выражено с использованием более традиционного языка .NET, такого как C# или Visual Basic .NET . Однако ключевым аспектом технологии является снижение сложности, необходимой для инструментов для обработки XAML, поскольку он основан на XML. [4]

Технологии

Первоначально XAML расшифровывался как Extensible Avalon Markup Language, а Avalon был кодовым названием Windows Presentation Foundation (WPF). [5] Однако до окончания разработки .NET Framework 3.0 Microsoft приняла XAML для Workflow Foundation (WF). [5]

В WPF XAML описывает визуальные пользовательские интерфейсы . WPF позволяет определять как 2D-, так и 3D-объекты, вращения, анимации и множество других эффектов и функций. Файл XAML может быть скомпилирован в файл Binary Application Markup Language (BAML), [5] [6] , который может быть вставлен как ресурс в сборку .NET Framework. Во время выполнения механизм фреймворка извлекает файл BAML из ресурсов сборки, анализирует его и создает соответствующее визуальное дерево или рабочий процесс WPF.

В контексте WF XAML описывает потенциально долгосрочную декларативную логику, например, созданную инструментами моделирования процессов и системами правил. Формат сериализации для рабочих процессов ранее назывался XOML, чтобы отличать его от использования XAML в разметке пользовательского интерфейса, но теперь они больше не различаются. Однако расширение файла для файлов, содержащих разметку рабочего процесса, по-прежнему ".xoml". [7]

XAML использует особый способ определения внешнего вида, называемый Templates ; в отличие от синтаксиса каскадных таблиц стилей он ближе к XBL . [8]

Для создания файлов XAML можно использовать Microsoft Expression Blend , Microsoft Visual Studio , размещаемый визуальный конструктор WF или XAMLPad. [9]

Примеры

Снимок экрана разработки приложения Windows Presentation Foundation (WPF) с использованием XAML и C# в Visual Studio 2022

В этом примере Windows Presentation Foundation показан текст «Hello, world!» в контейнере XAML верхнего уровня, называемом Canvas.

<Canvas xmlns= "http://schemas.microsoft.com/client/2010" xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml" > <TextBlock> Привет, мир! </TextBlock> </Canvas>    

Схему ( xmlns="http://schemas.microsoft.com/..."часть) может потребоваться изменить для работы на вашем компьютере. Используя схему, рекомендуемую Microsoft, пример также может быть [10]

<Canvas xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" > <TextBlock> Привет, мир! </TextBlock> </Canvas>   

Важнейшей частью использования XAML в полном объеме является правильное использование привязки, а также удобство создания собственных пользовательских элементов по мере необходимости для ваших конкретных нужд. Привязка может быть выполнена следующим образом:

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

Различия между версиями XAML

Существует три основных реализации XAML от Microsoft:

Эти версии имеют некоторые различия в поведении анализа. [11] Кроме того, анализатор Silverlight 4 XAML не на 100% обратно совместим с файлами Silverlight 3. Файлы Silverlight 3 XAML могут быть отклонены или проанализированы по-другому анализатором Silverlight 4. [12]

Приложения XAML в веб-браузерах

Исторически приложения на основе XAML могли запускаться в некоторых веб-браузерах , таких как Internet Explorer и Firefox . Этого можно было достичь с помощью файлов XBAP, созданных из приложений WPF , или с помощью плагина браузера Silverlight . Однако оба эти метода теперь не поддерживаются всеми основными браузерами из-за их зависимости от прекращенного интерфейса плагина браузера NPAPI . [13] [14]

Проблемы блокировки

В 2007 году Европейский комитет по совместимым системам (ECIS) — коалиция в основном американских компаний-разработчиков программного обеспечения — обвинил Microsoft в попытке захватить HTML и заменить его на XAML, тем самым создав привязку к поставщику . [15] [16] Джереми Реймер, пишущий для Ars Technica, назвал этот комментарий «самой вопиющей ошибкой» и добавил, что XAML вряд ли когда-либо заменит HTML. [16]

Смотрите также

Ссылки

  1. ^ "[MS-XAML] Xaml Object Mapping Specification 2006" (PDF) . Microsoft . Июнь 2008 г.
  2. ^ "Расширяемый язык разметки приложений (XAML)". Microsoft . 12 марта 2019 г.
  3. ^ Уортингтон, Дэвид. «Microsoft добавляет XAML в список „Открытых спецификаций“ – Software Development Times On The Web». Архивировано из оригинала 2008-12-11 . Получено 2021-04-06 .
  4. ^ «Подробный синтаксис XAML». Библиотека Windows Presentation Foundation . Microsoft . 12 августа 2021 г. – через Microsoft Docs .
  5. ^ abc Rob Relyea: Январь 2004 г. – Сообщения, заархивированные 2007-10-11 на Wayback Machine
  6. ^ неизвестно (2009-07-30). "Что такое BAML?". DOTNET Spider. BAML означает Binary Application Markup Language, который является скомпилированной версией XAML. Когда вы компилируете свой XAML, он создает файл BAML.
  7. ^ Эндрю, Пол (25 января 2006 г.). "xoml или xaml?". Архив сообщества MSDN . Microsoft . Программы (или модели) рабочих процессов сохраняются в формате XAML, который является общим для Avalon для сериализации типов .NET в виде XML. Avalon XAML полностью посвящен пользовательскому интерфейсу, а Workflow XAML полностью посвящен бизнес-процессам, поэтому между ними есть существенная семантическая разница. Расширение файла XOML, похоже, сохранится для моделей рабочих процессов, хотя формат файла — XAML.
  8. ^ Гатри, Скотт (22 февраля 2008 г.). «Учебник Silverlight, часть 7: использование шаблонов элементов управления для настройки внешнего вида и поведения элемента управления». Блог ScottGu .
  9. ^ Эйвери, Джеймс; Холмс, Джим. «3.3 Написание XAML в XamlPad — Windows Developer Power Tools [Книга]». www.oreilly.com . O'Reilly.
  10. ^ Страница обзора Microsoft XAML на странице Обзор XAML (корневой элемент и xmlns)
  11. ^ "Различия в обработке XAML между версиями Silverlight и WPF". Архив Silverlight . Microsoft . 17 ноября 2011 г. – через Microsoft Docs . Silverlight включает в себя анализатор XAML, который является частью основной установки Silverlight. Silverlight использует различные анализаторы XAML в зависимости от того, нацелено ли ваше приложение на Silverlight 3 или Silverlight 4. Эти два анализатора существуют бок о бок в Silverlight 4 для совместимости. В некоторых случаях поведение анализа XAML в Silverlight отличается от поведения анализа в Windows Presentation Foundation (WPF). WPF имеет свой собственный анализатор XAML.
  12. ^ "Различия в обработке XAML между версиями Silverlight". Архив Silverlight . Microsoft . 17 ноября 2011 г. – через Microsoft Docs .
  13. ^ adegeo. "FAQ о поддержке XBAP". learn.microsoft.com . Получено 2024-05-16 .
  14. ^ nakarnam (2020-03-16). "Окончание поддержки Silverlight - жизненный цикл Microsoft". learn.microsoft.com . Получено 2024-05-16 .
  15. Beer, Stan (28 января 200 г.). «Microsoft сталкивается с обвинениями в отношении Vista в ЕС». iTWire . Получено 22 августа 2013 г.
  16. ^ ab Reimer, Jeremy (26 января 2007 г.). «Председатель Европейского комитета обвиняет Microsoft в захвате сети». Ars Technica . Condé Nast . Получено 22 августа 2013 г. .
  • Справочник по языку XAML
  • XAML для UWP: Обзор
  • XAML для WPF: Обзор
  • Пространство имен System.Windows.Markup
  • Пространство имен System.Xaml
Взято с "https://en.wikipedia.org/w/index.php?title=Расширяемый_язык_разметки_приложений&oldid=1224107697"