Что такое XAML?
XAML — это язык разметки, разработкой которого занималась компания Microsoft, и внедрен он был во время появления начальной версии WPF.
Сегодня языком активно пользуются многие люди, поскольку он актуален в Silverlight, Windows Phone 7. Но, чтобы эффективно применять XAML, нужно знать и понимать основные положения его концепции.
Выделяют несколько видов языков в программировании. Основные два — это императивные и декларативные. К первому типу относятся такие популярные языки, как C, C++, C#, Pascal и прочие. Основная задумка заключается в том, что программист указывает, что нужно сделать. При этом не обозначается, что должно быть на выходе, этот момент, чаще всего, описывается и проверяется при тестировании.
Второй тип является противоположностью. В этом случае есть возможность описывать состояния, которые нам требуется получить в итоге, а описание того, как получить необходимое состояние, не нужно. На концепции основаны все языки иерархической разметки, в том числе XAML, управление базами данных SQL.
Для чего нужен Xaml?
Исходя из модели программирования .NET Core язык XAML создан для упрощения процесса реализации интерфейса пользователя (или UI — user interface) для программ .NET Core. Видимые элементы UI можно создавать в декларативной разметке, то есть, используя Xaml, а далее отделить значение пользовательского интерфейса от логики времени осуществления. Для этого используются файлы кода, которые добавляют к разметке посредством определений разделяемых классов.
Экземпляры объектов в конкретных сборках создаются напрямую. В этом лежит главное отличие от большинства остальных языков разметки, что зачастую являются интерпретируемыми и не имеют связи напрямую с системой вспомогательных типов.
Таким образом, обеспечивается рабочий процесс, в ходе которого, несколько участников могут заниматься разработкой user interface, прописыванием логики программы при помощи разных средств.
Файлы Xaml при преобразовании в текст открываются, как XML-файлы с расширением .xaml. Они поддерживают множество видов кодировок доступных для XML, чаще всего выбирают UTF-8.
Элементы XAML
XAML-документы включает разметку, которая служит для описания внешнего вида, действий окон или страниц приложений, а логика содержится в привязанном файле с кодом. Данный язык помогает разделить графическую часть приложения — UI, и работу с бизнес-логикой — непосредственно процесс кодирования, для налаживания коммуникации между дизайнерами и разработчиками. Одним из подмножества XML является WPF XAML, что помогает представить WPF-содержимое многих компонентов, например, векторная графика, документы и другое.
Базисом является Extensible Markup Language, и соответственно он определяет весь синтаксис. Основные правила следующие:
- Все элементы Xaml-документа входят в экземпляр класса .NET. Имя данного элемента будет полностью совпадать с названием класса. Для примера, можно взять компонент Button, который является основой для создания объекта класса Button;
- Элементы могут быть вложенными друг в друга. Этот параметр показывает вложенность компонентов интерфейса;
- Атрибуты или внутренние дескрипторы описывают свойства классов, что определяется особым синтаксисом.
- Для XAML характерной является возможность самоописания. Любой элемент документа содержит название типа, например, Label, Button, CheckBox и другие, в пределах указанного пространства имен. Атрибуты применяются для обозначения свойств (Color, Margin, Width и пр.) и действий (Closed, Loaded и пр.) выбранных объектов.
Принцип работы
Стоит остановиться детальные на пути трансформации Xaml-кода в wpf-проекте. Прежде всего, кодировка считывается и конвертируется процессором для определенной платформы во внутренний код, описывающий компонент интерфейса пользователя. Внутреннее кодирование и код C # взаимодействуют между собой через частичные классы, а далее компилятор воссоздает приложение.
Xaml-документы используются для определения места положения окон, кнопок и других компонентов, отвечающих за управление. Ручное XAML-программирование встречается крайне редко. Технология предполагает использование инструмента, который генерирует требуемый код.
Для дизайнеров — это программы для графического дизайна, а для программистов чаще всего VisualStudio. Этот инструментарий поддерживает xaml, а значит, есть возможность создать основу UI на базе Вижуал Студии, а затем отдать наработки дизайнерской команде. В действительности такая возможность интеграции разных специалистов в рабочем процессе считается одной из главных причин создания языка компанией Microsoft.
В сфере разработки давно известно, что создание сложных приложений с насыщенной графической частью значительно проще, если применять метод разделения graphical interface и основного программного кода. Обе основные части могут создаваться и меняться независимо, исключая проблемы версий.
Плюсы и минусы программы
Создавать элементы можно без применения XAML, обходясь только кодом на C#. Но в случае использования можно получить такие преимущества:
- разграничение логики, графического отображения — таким образом, появляется возможность для специалистов разной направленности автономной работы с программой;
- лаконичность, доступность к пониманию;
- относительную простоту в поддержке.
Момент обработки XAML-кода не несет особого значения — за этот процесс отвечает XAML-парсер.
Как и другие языки, он имеет свои недостатки. Один из главных заключается в том, что при создании GUI может потребоваться написать достаточно объемный код.
Одна из важных особенностей в XAML — привязывание данных. Но данное средство разработки может вызывать появление проблем, сложных в исправлении. Их возникновение может быть связано с:
- неправильно приписанная привязка;
- не указывается Data Context;
- попытка передать пустой объект.
Также важно знать, что, если после изучения XAML для WPF, нужно будет перейти к разработке Xamarin. Forms, то там будут свои особенности. Некоторые компоненты имеют другие названия, отличается способ привязывания данных и другие отличия.
Базовый синтаксис языка
XAML основывается на XML, может расширять его. Основная часть терминологии у них общая. Не только основные принципы, но и сам синтаксис базируется на xml. Таким образом, Xaml-код будет допустимым кодом XML. Кроме того, есть отличия в написании кода, уточнения в значении некоторых элементов, которое также поддерживается спецификацией языка-базиса.
Если рассмотреть нюансы синтаксиса свойств, то их значения могут задаваться в элементах, вместо строковых значений атрибутов. То есть, компонент будет определяться для XML-языка, как элемент с точкой в названии, это означает, что он допустим, но содержит другое значение. XAML-код содержит в своей структуре определенную иерархию элементов.
На верхнем уровне находятся Window, Page и Application. В окне есть вложенный Grid, он пустой. Также есть набор атрибутов — Title, Height, Width, которые настраивают заголовок, высоту, ширину.
Еще одна важная часть — это пространство имен. Оно располагается на 2−3 строчках разметки, а подключение к проекту происходит автоматически. Для определения данного пространства нужен атрибут xmlns. В нем содержится описание и определение большей части управляющих элементов, а также определение некоторых свойств.
Разновидности XAML
Для использования кодирования XAML разработано несколько способов. Он был реализован для ссылания на весь язык xaml, который предлагает синтаксис на основе XML для отображения объектного дерева .NET. Данные объекты могут являться кнопками, полями для текста, а также пользовательским классом. По факту, XAML можно использовать на иных платформах для представления объектов, не входящих в .NET.
Выделяют следующие подмножества данного языка разметки:
- WPF — содержит описание содержимого WPF, например, векторную графику, компоненты для управления, документы. Такое использование является наиболее приоритетным на данный момент.
- XPS — является частью предыдущего. Определяет формат отформатированных электронных файлов. Публикуется как независимая спецификация XML Paper.
- Silverlight. Предназначается для приложений Silverlight. Это кроссплатформенный плагин для браузера, который помогает в создании расширенного веб-контента с 2D-графикой, анимированием, аудио-сопровождением, видеофайлами.
- WF. Содержит описание того, что содержится в Windows Workflow Foundation.
XAML — это эффективный инструмент для создания Graphical User Interface программ. После его изучения, процесс разработки становится проще. Кроме того, такой код могут понять не только разработчики, но и дизайнеры. Это дает возможность создавать красивые приложения с дружелюбным к пользователю интерфейсом.