Расширяемый язык разметки приложений
Расширение имени файла | .xaml |
---|---|
Тип интернет-СМИ | приложение/xaml+xml |
Разработано | Майкрософт |
Первоначальный выпуск | ноябрь 2006 г [1] |
Последний выпуск | v2019 12 марта 2019 г [2] |
Тип формата | Язык разметки пользовательского интерфейса |
Расширено с | XML |
Расширяемый язык разметки приложений ( XAML / ˈ z æ m əl / ) — это декларативный язык на основе XML , разработанный Microsoft для инициализации структурированных значений и объектов. Он доступен в соответствии с обещанием открытой спецификации Microsoft . [3]
XAML широко используется в Windows Presentation Foundation (WPF), Silverlight , Workflow Foundation (WF), библиотеке пользовательского интерфейса Windows (WinUI), универсальной платформе Windows (UWP) и пользовательском интерфейсе многоплатформенного приложения .NET (.NET MAUI). В WPF и UWP XAML — это язык разметки пользовательского интерфейса для определения элементов пользовательского интерфейса, привязки данных и событий. Однако в WF рабочие процессы определяются XAML .
Элементы XAML напрямую сопоставляются с экземплярами объектов среды Common Language Runtime (CLR), а атрибуты XAML сопоставляются со свойствами и событиями CLR этих объектов.
Все, что создано или реализовано в XAML, может быть выражено с использованием более традиционного языка .NET, такого как C# или Visual Basic .NET . Однако ключевым аспектом технологии является снижение сложности инструментов для обработки XAML, поскольку она основана на XML. [4]
Технология
[ редактировать ]Первоначально XAML обозначал расширяемый язык разметки Avalon, а Avalon — кодовое название Windows Presentation Foundation (WPF). [5] Однако до завершения разработки .NET Framework 3.0 Microsoft приняла XAML для Workflow Foundation (WF). [5]
В WPF XAML описывает визуальные пользовательские интерфейсы . WPF позволяет определять как 2D-, так и 3D-объекты, повороты, анимацию и множество других эффектов и функций. Файл XAML можно скомпилировать в файл языка разметки двоичных приложений (BAML). [5] [6] который можно вставить как ресурс в сборку .NET Framework. Во время выполнения механизм платформы извлекает файл BAML из ресурсов сборки, анализирует его и создает соответствующее визуальное дерево или рабочий процесс WPF.
В контексте WF XAML описывает потенциально долгодействующую декларативную логику, например, создаваемую инструментами моделирования процессов и системами правил. Формат сериализации для рабочих процессов ранее назывался XOML, чтобы отличать его от использования XAML в разметке пользовательского интерфейса, но теперь они больше не различаются. Однако расширение файлов, содержащих разметку рабочего процесса, по-прежнему остается «.xoml». [7]
В XAML используется особый способ определения внешнего вида, называемый Template s; В отличие от синтаксиса каскадной таблицы стилей , он ближе к XBL . [8]
Для создания файлов XAML можно использовать Microsoft Expression Blend , Microsoft Visual Studio , размещаемый визуальный дизайнер WF или XAMLPad. [9]
Примеры
[ редактировать ]В этом примере Windows Presentation Foundation показан текст «Привет, мир!» в контейнере XAML верхнего уровня под названием Canvas.
<Canvas xmlns="http://schemas.microsoft.com/client/2010" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <TextBlock>Hello, world!</TextBlock></Canvas>
Схема (т. xmlns="http://schemas.microsoft.com/..."
часть), возможно, придется изменить для работы на вашем компьютере.Используя схему, рекомендованную Microsoft, пример также может быть [10]
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <TextBlock>Hello, world!</TextBlock></Canvas>
Важнейшей частью использования полного потенциала XAML является правильное использование привязки, а также умение создавать собственные пользовательские элементы по мере необходимости и для ваших конкретных нужд. Привязку можно выполнить следующим образом:
<TextBox x:Name="txtInput" /><TextBlock Text="{Binding ElementName=txtInput,Path=Text}" />
Различия между версиями XAML
[ редактировать ]Существует три основные реализации XAML от Microsoft:
- Windows Presentation Foundation (WPF), впервые доступный в .NET Framework 3.0.
- Silverlight 3 и 4, сначала доступные для Internet Explorer 6 , теперь устаревшие.
- Библиотека пользовательского интерфейса Windows (ранее UWP XAML и WinRT XAML), впервые поставляемая с Windows 8 и Windows Server 2012 , но теперь доступная как часть Windows App SDK.
Эти версии имеют некоторые различия в поведении синтаксического анализа. [11] Кроме того, анализатор XAML Silverlight 4 не на 100% обратно совместим с файлами Silverlight 3. Файлы XAML Silverlight 3 могут быть отклонены или обработаны по-другому анализатором 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]
См. также
[ редактировать ]- Список языков разметки пользовательского интерфейса
- Сравнение языков разметки пользовательского интерфейса :
Ссылки
[ редактировать ]- ^ «[MS-XAML] Спецификация сопоставления объектов Xaml 2006» (PDF) . Майкрософт . Июнь 2008 года.
- ^ «Расширяемый язык разметки приложений (XAML)» . Майкрософт . 12 марта 2019 г.
- ^ Уортингтон, Дэвид. «Microsoft добавляет XAML в список «открытых спецификаций» – Время разработки программного обеспечения в Интернете» . Архивировано из оригинала 11 декабря 2008 г. Проверено 06 апреля 2021 г.
- ^ «Подробно о синтаксисе XAML» . Библиотека Windows Presentation Foundation . Майкрософт . 12 августа 2021 г. — через Microsoft Docs .
- ^ Jump up to: а б с Роб Релиа: январь 2004 г. - Сообщения, заархивированные 11 октября 2007 г. в Wayback Machine.
- ^ неизвестно (30 июля 2009 г.). «Что такое БАМЛ?» . ДОТНЕТ Паук.
BAML означает двоичный язык разметки приложений, который представляет собой скомпилированную версию XAML. Когда вы компилируете XAML, он создает файл BAML.
- ^ Эндрю, Пол (25 января 2006 г.). "xoml или xaml?" . Архив сообщества MSDN . Майкрософт .
Программы (или модели) рабочих процессов сохраняются в формате XAML, который является общим для Avalon и предназначен для сериализации типов .NET в виде XML. Avalon XAML — это пользовательский интерфейс, а Workflow XAML — бизнес-процесс, поэтому существует значительная семантическая разница. Расширение файла XOML, похоже, останется для моделей рабочих процессов, хотя формат файла — XAML.
- ^ Гатри, Скотт (22 февраля 2008 г.). «Учебное пособие по Silverlight, часть 7. Использование шаблонов элементов управления для настройки внешнего вида элемента управления» . Блог СкоттГу .
- ^ Эйвери, Джеймс; Холмс, Джим. «3.3 Написание XAML в XamlPad — Инструменты разработчика Windows [Книга]» . www.oreilly.com . О'Рейли.
- ^ Страница обзора Microsoft XAML по адресу Обзор XAML (корневой элемент и xmlns)
- ^ «Различия в обработке XAML между версиями Silverlight и WPF» . Архив Сильверлайта . Майкрософт . 17 ноября 2011 г. — через Microsoft Docs .
Silverlight включает анализатор XAML, который является частью базовой установки Silverlight. Silverlight использует разные анализаторы XAML в зависимости от того, предназначено ли ваше приложение для Silverlight 3 или Silverlight 4. В Silverlight 4 эти два анализатора существуют параллельно для обеспечения совместимости. В некоторых случаях поведение анализа XAML в Silverlight отличается от поведения анализа в Windows Presentation Foundation (WPF). WPF имеет собственный синтаксический анализатор XAML.
- ^ «Различия в обработке XAML между версиями Silverlight» . Архив Сильверлайта . Майкрософт . 17 ноября 2011 г. — через Microsoft Docs .
- ^ адегео. «Часто задаваемые вопросы о поддержке XBAP» . Learn.microsoft.com . Проверено 16 мая 2024 г.
- ^ Накарнам (16 марта 2020 г.). «Окончание поддержки Silverlight — жизненный цикл Microsoft» . Learn.microsoft.com . Проверено 16 мая 2024 г.
- ^ Бир, Стэн (28 января 200 г.). «Microsoft предъявляет обвинения ЕС Vista» . iTWire . Проверено 22 августа 2013 г.
- ^ Jump up to: а б Реймер, Джереми (26 января 2007 г.). «Председатель европейского комитета обвиняет Microsoft во взломе Интернета» . Арс Техника . Конде Наст . Проверено 22 августа 2013 г.