xaml - язык разметки приложений
DESCRIPTION
Видео со встречи: http://getdev.net/Event/xaml Доклад посвящен XAML — основанному на XML языку разметки для декларативного программирования приложений. Он является основой технологий WPF и Silverlight, a также используется в WinRT.TRANSCRIPT
![Page 1: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/1.jpg)
XAMLязык разметки приложений
СЕРГЕЙ ЗВЯГИНСПЕЦИАЛЬНО ДЛЯ GetDev.NET
![Page 2: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/2.jpg)
ИСТОРИЯ
![Page 3: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/3.jpg)
Впервые публично были показаны альфа-сборки Windows Codename LonghornDesktop Composition Engine (теперь DWM) демонстрировал различные эффекты: прозрачность, летающие окна, масштабирование
WinHEC 2003
![Page 4: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/4.jpg)
WinHEC 2003
![Page 5: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/5.jpg)
Windows Codename Longhorn была представлена для разработчиковНовые подсистемы Windows: Avalon (теперь WPF), Indigo (теперь WCF), WinFS
PDC 2003
![Page 6: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/6.jpg)
PDC 2003
![Page 7: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/7.jpg)
Нотификации
Windows Codename Longhorn Windows 8
![Page 8: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/8.jpg)
Avalon – графическая подсистема WindowsПроводник, панель задач, сайдбар и нотификации также являются частью этой подсистемы
Avalon
![Page 9: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/9.jpg)
Avalon состоит из 3 компонентов:The "Avalon" EngineThe "Avalon" FrameworkXAML
Avalon
![Page 10: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/10.jpg)
Avalon построен на DirectXВекторная графика легко масштабируется без участия разработчика и пользователяAvalon использует аппаратное ускорение, если видеокарта это позволяет
Avalon Engine
![Page 11: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/11.jpg)
Элементы управления можно создавать с нуляТакже Avalon предоставляет разработчикам примитивы, на основе которых можно создавать собственные контролы
Avalon Framework
![Page 12: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/12.jpg)
XAML – язык разметки для декларативного представления пользовательского интерфейсаXAML отделяет представление пользовательского интерфейса от кода и позволяет разработчикам и дизайнерам работать более продуктивно
XAML
![Page 13: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/13.jpg)
Совместная работа
Создает дизайн
С помощью XAML дизайнеры и
разработчики могут выйти на новый
уровень взаимодействия
Добавляет бизнес логику
![Page 14: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/14.jpg)
ОСНОВНЫЕ ПОНЯТИЯ
![Page 15: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/15.jpg)
.NET Framework 3 и вышеWindows Presentation FoundationWindows Workflow Foundation
Silverlight (в т.ч. для Windows Phone)Windows Runtime XAML Framework
Где используется XAML?
![Page 16: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/16.jpg)
Разметка основана на XML, поэтому может быть написана в любом текстовом редактореСуществуют WYSIWYG-редакторы, наиболее популярный – Expression Blend
Как создается XAML?
![Page 17: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/17.jpg)
ДЕМО
![Page 18: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/18.jpg)
КонтейнерыЭлементы управленияГрафические примитивыСлужбы документов
Элементы XAML
![Page 19: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/19.jpg)
Позволяют определить отображение контроловМожно переопределить стандартные шаблоныМогут быть включены в описание элемента, могуть быть общими для контрола, могут быть вынесены в ресурсы
Стили и шаблоны
![Page 20: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/20.jpg)
Markup Extensions используются для получения значения, которое не является ни примитивным, ни специфичным xaml-типомРасширение разметки записывается внутри фигурных скобок в значении атрибута
Расширения разметки
![Page 21: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/21.jpg)
Data Binding используется для отображения и взаимодействия с даннымиПозволяет автоматически изменять свойства элемента пользовательского интерфейса при обновлении данныхСинтаксис соответствует расширению разметки: {Binding …}
Связывание данных
![Page 22: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/22.jpg)
Различные трансформации (поворот, перемещение, масштабирование, наклон) и изменение свойств элементов пользовательского интерфейса во времени также могут быть заданы декларативно в разметке XAML
Трансформация и анимация
![Page 23: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/23.jpg)
КАК ЭТО РАБОТАЕТ?
![Page 24: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/24.jpg)
Разметка компилируется в файл .BAMLОн включается в сборку как ресурсНа этапе выполнения движок извлекает файл .BAML из сборки, парсит его и создает визуальное дерево или workflow
Как это работает?
![Page 25: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/25.jpg)
При использовании WPF, Silverlight и WinRT разметка описывает пользовательский интерфейсПри использовании WF разметка описывает декларативную логику, файл имеет расширение .XOML. Формат сериализации также изначально назывался XOML
Как это работает?
![Page 26: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/26.jpg)
Xaml Information SetПроцесс конвертации XML-документа в Xaml Information SetXaml Schema Information Set
Спецификация
![Page 27: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/27.jpg)
Xaml Information Set – определяет структурированную информацию, которую объект Xaml может представлятьТермин “xaml-документ” означает xml-документ, описывающий Xaml Information Set
Спецификация: Xaml Information Set
![Page 28: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/28.jpg)
Спецификация определяет правила, по которым xml-документ трансформируется в струкрурированную информацию Xaml Information Set
Спецификация: конвертация XML-документа
![Page 29: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/29.jpg)
Эти правила могут быть расширены на основании различных XAML-словарей, определяющих схему документаСпособы задания таких словарей описаны в разделе спецификации Xaml Schema Information Set
Спецификация: Xaml Schema Information Set
![Page 30: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/30.jpg)
Windows Presentation FoundationSilverlight 3Silverlight 4Windows Runtime XAML Framework
Различные реализации XAML (словарей)
![Page 31: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/31.jpg)
ВОПРОСЫ?
![Page 32: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/32.jpg)
Спецификации XAML http://cut.ms/bHgnMSDN: WPF XAML http://cut.ms/bHgoMSDN: Silverlight XAML http://cut.ms/bHgpMSDN: WinRT XAML http://cut.ms/bHgq
Полезные ссылки
![Page 33: XAML - язык разметки приложений](https://reader036.vdocument.in/reader036/viewer/2022081419/555e1ba5d8b42a9e188b5991/html5/thumbnails/33.jpg)
СПАСИБО ЗА ВНИМАНИЕ!
Сергей Звягин
BingoRUS