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


Extensible Application Markup Language ( XAML / г æ м əl / ( слушать )Об этом звуке ) является декларативным XML основанного языком , разработанный Microsoft , который используется для инициализации структурированных значений и объектов. Он доступен в рамках обещания открытой спецификации Microsoft . [4] Первоначально аббревиатура расшифровывалась как Extensible Avalon Markup Language, Avalon - это кодовое название Windows Presentation Foundation (WPF). [5]

XAML широко используется в технологиях .NET Framework 3.0 и .NET Framework 4.0 , особенно в Windows Presentation Foundation (WPF) , Silverlight , Windows Workflow Foundation (WF) , XAML Framework среды выполнения Windows и приложениях Windows Store. В WPF XAML формирует язык разметки пользовательского интерфейса для определения элементов пользовательского интерфейса, привязки данных, событий и других функций. В WF рабочие процессы можно определять с помощью XAML. XAML также можно использовать в приложениях Silverlight , Windows 10 Mobile (ранее Windows Phone ) и приложениях универсальной платформы Windows , также называемых приложениями Магазина Windows .

Элементы XAML сопоставляются непосредственно с экземплярами объектов среды CLR , а атрибуты XAML сопоставляются со свойствами и событиями среды CLR для этих объектов. Файлы XAML можно создавать и редактировать с помощью инструментов визуального дизайна, таких как Microsoft Expression Blend , Microsoft Visual Studio и размещаемого визуального конструктора Windows Workflow Foundation . Их также можно создавать и редактировать с помощью стандартного текстового редактора , редактора кода, такого как XAMLPad , или графического редактора, такого как Vector Architect .

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

Файл XAML можно скомпилировать в файл .BAML ( язык разметки двоичных приложений [7] ), который можно вставить в качестве ресурса в сборку .NET Framework. Во время выполнения механизм платформы извлекает файл .BAML из ресурсов сборки, анализирует его и создает соответствующее визуальное дерево или рабочий процесс WPF.

При использовании в Windows Presentation Foundation XAML используется для описания визуальных пользовательских интерфейсов . WPF позволяет определять как 2D-, так и 3D-объекты, вращение, анимацию и множество других эффектов и функций.

При использовании в контекстах Windows Workflow Foundation XAML используется для описания потенциально длительной декларативной логики, например, созданной средствами моделирования процессов и системами правил. Формат сериализации для рабочих процессов ранее назывался XOML , чтобы отличать его от разметки пользовательского интерфейса, использующей XAML, но теперь они больше не различаются. Однако расширение файла для файлов, содержащих разметку рабочего процесса, по-прежнему «XOML». [8] [9]

Шаблоны

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

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

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

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

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

Его можно интегрировать в веб-страницу, если WPF установлен с использованием XBAP (приложений браузера XAML), которые представляют собой скомпилированные приложения, работающие в изолированной среде, размещенной в браузере. Другой способ - использовать плагин Silverlight . Код не может быть включен непосредственно в HTML- страницу; скорее, он должен быть загружен на страницу через JavaScript . Если установлена ​​.NET 3.0 или более поздняя версия, свободные файлы XAML также можно просматривать отдельно в совместимом веб-браузере (включая Internet Explorer и Firefox ) в сочетании с .NET Framework 3.0 без необходимости в подключаемом модуле Silverlight. [12] Свободные файлы XAML - это файлы только разметки, которые ограничены определением визуального содержимого для визуализации. Они не скомпилированы с приложением.

 xmlns = "http://www.w3.org/1999/xhtml" >     Пример XAML