SlideShare une entreprise Scribd logo
1  sur  33
XAML
язык разметки приложений



                   СЕРГЕЙ ЗВЯГИН
             СПЕЦИАЛЬНО ДЛЯ GetDev.NET
ИСТОРИЯ
WinHEC 2003

Впервые публично были показаны альфа-
сборки Windows Codename Longhorn
Desktop Composition Engine (теперь DWM)
демонстрировал различные эффекты:
прозрачность, летающие
окна, масштабирование
WinHEC 2003
PDC 2003

Windows Codename Longhorn была
представлена для разработчиков
Новые подсистемы Windows: Avalon
(теперь WPF), Indigo (теперь
WCF), WinFS
PDC 2003
Нотификации




  Windows Codename Longhorn   Windows 8
Avalon

Avalon – графическая подсистема
Windows
Проводник, панель задач, сайдбар и
нотификации также являются частью этой
подсистемы
Avalon

Avalon состоит из 3 компонентов:
 The "Avalon" Engine
 The "Avalon" Framework
 XAML
Avalon Engine

Avalon построен на DirectX
Векторная графика легко
масштабируется без участия
разработчика и пользователя
Avalon использует аппаратное
ускорение, если видеокарта это
позволяет
Avalon Framework

Элементы управления можно создавать с
нуля
Также Avalon предоставляет
разработчикам примитивы, на основе
которых можно создавать собственные
контролы
XAML

XAML – язык разметки для
декларативного представления
пользовательского интерфейса
XAML отделяет представление
пользовательского интерфейса от кода и
позволяет разработчикам и дизайнерам
работать более продуктивно
Совместная работа

                      С помощью XAML
                         дизайнеры и
                      разработчики могут
                    выйти на новый уровень
   Создает дизайн      взаимодействия Добавляет бизнес логику
ОСНОВНЫЕ ПОНЯТИЯ
Где используется XAML?

.NET Framework 3 и выше
 Windows Presentation Foundation
 Windows Workflow Foundation
Silverlight (в т.ч. для Windows Phone)
Windows Runtime XAML Framework
Как создается XAML?

Разметка основана на XML, поэтому
может быть написана в любом текстовом
редакторе
Существуют WYSIWYG-
редакторы, наиболее популярный –
Expression Blend
ДЕМО
Элементы XAML

Контейнеры
Элементы управления
Графические примитивы
Службы документов
Стили и шаблоны

Позволяют определить отображение
контролов
Можно переопределить стандартные
шаблоны
Могут быть включены в описание
элемента, могуть быть общими для
контрола, могут быть вынесены в
ресурсы
Расширения разметки

Markup Extensions используются для
получения значения, которое не является
ни примитивным, ни специфичным xaml-
типом
Расширение разметки записывается
внутри фигурных скобок в значении
атрибута
Связывание данных

Data Binding используется для
отображения и взаимодействия с
данными
Позволяет автоматически изменять
свойства элемента пользовательского
интерфейса при обновлении данных
Синтаксис соответствует расширению
разметки: {Binding …}
Трансформация и анимация

Различные трансформации
(поворот, перемещение, масштабировани
е, наклон) и изменение свойств
элементов пользовательского
интерфейса во времени также могут быть
заданы декларативно в разметке XAML
КАК ЭТО РАБОТАЕТ?
Как это работает?

Разметка компилируется в файл .BAML
Он включается в сборку как ресурс
На этапе выполнения движок извлекает
файл .BAML из сборки, парсит его и
создает визуальное дерево или workflow
Как это работает?

При использовании WPF, Silverlight и
WinRT разметка описывает
пользовательский интерфейс
При использовании WF разметка
описывает декларативную логику, файл
имеет расширение .XOML. Формат
сериализации также изначально
назывался XOML
Спецификация

Xaml Information Set
Процесс конвертации XML-документа в
Xaml Information Set
Xaml Schema Information Set
Спецификация: Xaml Information Set

Xaml Information Set – определяет
структурированную
информацию, которую объект Xaml может
представлять
Термин “xaml-документ” означает xml-
документ, описывающий Xaml Information
Set
Спецификация: конвертация XML-
документа

Спецификация определяет правила, по
которым xml-документ трансформируется
в струкрурированную информацию Xaml
Information Set
Спецификация: Xaml Schema Information
Set

Эти правила могут быть расширены на
основании различных XAML-
словарей, определяющих схему
документа
Способы задания таких словарей
описаны в разделе спецификации Xaml
Schema Information Set
Различные реализации XAML (словарей)

Windows Presentation Foundation
Silverlight 3
Silverlight 4
Windows Runtime XAML Framework
ВОПРОСЫ?
Полезные ссылки

Спецификации XAML http://cut.ms/bHgn
MSDN: WPF XAML http://cut.ms/bHgo
MSDN: Silverlight XAML http://cut.ms/bHgp
MSDN: WinRT XAML http://cut.ms/bHgq
СПАСИБО ЗА ВНИМАНИЕ!



       Сергей Звягин




       BingoRUS

Contenu connexe

Similaire à XAML - язык разметки приложений

Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureAndrew Mayorov
 
10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoftKewpaN
 
Share Point Workflow
Share Point WorkflowShare Point Workflow
Share Point WorkflowMaximKo
 
Sql Server Data Services
Sql Server Data ServicesSql Server Data Services
Sql Server Data ServicesMedia Gorod
 
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXBТехнология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXBFedor Malyshkin
 
C# Web. Занятие 03.
C# Web. Занятие 03.C# Web. Занятие 03.
C# Web. Занятие 03.Igor Shkulipa
 
Перла А. Обзор интеграционных решений FileMaker.
Перла А. Обзор интеграционных решений FileMaker. Перла А. Обзор интеграционных решений FileMaker.
Перла А. Обзор интеграционных решений FileMaker. FMTeam
 
Microsoft BizTalk Server
Microsoft BizTalk ServerMicrosoft BizTalk Server
Microsoft BizTalk ServerAndrey Kazakov
 
Business platform company
Business platform companyBusiness platform company
Business platform companybplatform
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Alexander Babich
 
Workflow Foundation
Workflow FoundationWorkflow Foundation
Workflow FoundationGetDev.NET
 
Flex 4 gumbo framework
Flex 4 gumbo frameworkFlex 4 gumbo framework
Flex 4 gumbo frameworkValery
 
Roman Zdebskiy - Client vs. Browser
Roman Zdebskiy - Client vs. BrowserRoman Zdebskiy - Client vs. Browser
Roman Zdebskiy - Client vs. BrowserAndrew Mayorov
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-AccessSerghei Urban
 
Использование Symfony
Использование SymfonyИспользование Symfony
Использование SymfonyMedia Gorod
 
Flex 4 Gumbo Framework
Flex 4 Gumbo FrameworkFlex 4 Gumbo Framework
Flex 4 Gumbo FrameworkMr_Dr_Jr
 
[JAM 1.1] Symfony (Alexei Yanochkin)
[JAM 1.1] Symfony (Alexei Yanochkin)[JAM 1.1] Symfony (Alexei Yanochkin)
[JAM 1.1] Symfony (Alexei Yanochkin)Evgeny Kaziak
 

Similaire à XAML - язык разметки приложений (20)

Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows Azure
 
10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft
 
Share Point Workflow
Share Point WorkflowShare Point Workflow
Share Point Workflow
 
Sql Server Data Services
Sql Server Data ServicesSql Server Data Services
Sql Server Data Services
 
Flex 4 Gumbo
Flex 4 GumboFlex 4 Gumbo
Flex 4 Gumbo
 
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXBТехнология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB
 
C# Web. Занятие 03.
C# Web. Занятие 03.C# Web. Занятие 03.
C# Web. Занятие 03.
 
Перла А. Обзор интеграционных решений FileMaker.
Перла А. Обзор интеграционных решений FileMaker. Перла А. Обзор интеграционных решений FileMaker.
Перла А. Обзор интеграционных решений FileMaker.
 
Microsoft BizTalk Server
Microsoft BizTalk ServerMicrosoft BizTalk Server
Microsoft BizTalk Server
 
Business platform company
Business platform companyBusiness platform company
Business platform company
 
X Window
X WindowX Window
X Window
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Microsoft Visual Studio 2010
Microsoft Visual Studio 2010
 
Workflow Foundation
Workflow FoundationWorkflow Foundation
Workflow Foundation
 
Flex 4 gumbo framework
Flex 4 gumbo frameworkFlex 4 gumbo framework
Flex 4 gumbo framework
 
Roman Zdebskiy - Client vs. Browser
Roman Zdebskiy - Client vs. BrowserRoman Zdebskiy - Client vs. Browser
Roman Zdebskiy - Client vs. Browser
 
Silverlight 5
Silverlight 5Silverlight 5
Silverlight 5
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-Access
 
Использование Symfony
Использование SymfonyИспользование Symfony
Использование Symfony
 
Flex 4 Gumbo Framework
Flex 4 Gumbo FrameworkFlex 4 Gumbo Framework
Flex 4 Gumbo Framework
 
[JAM 1.1] Symfony (Alexei Yanochkin)
[JAM 1.1] Symfony (Alexei Yanochkin)[JAM 1.1] Symfony (Alexei Yanochkin)
[JAM 1.1] Symfony (Alexei Yanochkin)
 

Plus de GetDev.NET

Leap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееLeap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееGetDev.NET
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистовGetDev.NET
 
Mind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеMind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеGetDev.NET
 
Что нового в Visual Studio 2015
Что нового в Visual Studio 2015Что нового в Visual Studio 2015
Что нового в Visual Studio 2015GetDev.NET
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революцияGetDev.NET
 
Windows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковWindows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковGetDev.NET
 
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКPhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКGetDev.NET
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web APIGetDev.NET
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013GetDev.NET
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...GetDev.NET
 
Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8GetDev.NET
 
Async Javascript
Async JavascriptAsync Javascript
Async JavascriptGetDev.NET
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language RuntimeGetDev.NET
 
JavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиJavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиGetDev.NET
 
Roslyn - компилятор как сервис
Roslyn - компилятор как сервисRoslyn - компилятор как сервис
Roslyn - компилятор как сервисGetDev.NET
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCGetDev.NET
 

Plus de GetDev.NET (20)

Go
GoGo
Go
 
Leap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееLeap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущее
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистов
 
Mind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеMind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучше
 
Что нового в Visual Studio 2015
Что нового в Visual Studio 2015Что нового в Visual Studio 2015
Что нового в Visual Studio 2015
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революция
 
Windows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковWindows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиков
 
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКPhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
 
AngularJS
AngularJSAngularJS
AngularJS
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
 
Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8
 
Async Javascript
Async JavascriptAsync Javascript
Async Javascript
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language Runtime
 
JavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиJavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработки
 
Roslyn - компилятор как сервис
Roslyn - компилятор как сервисRoslyn - компилятор как сервис
Roslyn - компилятор как сервис
 
ASP.NET MVC 4
ASP.NET MVC 4ASP.NET MVC 4
ASP.NET MVC 4
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
 

XAML - язык разметки приложений

  • 1. XAML язык разметки приложений СЕРГЕЙ ЗВЯГИН СПЕЦИАЛЬНО ДЛЯ GetDev.NET
  • 3. WinHEC 2003 Впервые публично были показаны альфа- сборки Windows Codename Longhorn Desktop Composition Engine (теперь DWM) демонстрировал различные эффекты: прозрачность, летающие окна, масштабирование
  • 5. PDC 2003 Windows Codename Longhorn была представлена для разработчиков Новые подсистемы Windows: Avalon (теперь WPF), Indigo (теперь WCF), WinFS
  • 7. Нотификации Windows Codename Longhorn Windows 8
  • 8. Avalon Avalon – графическая подсистема Windows Проводник, панель задач, сайдбар и нотификации также являются частью этой подсистемы
  • 9. Avalon Avalon состоит из 3 компонентов: The "Avalon" Engine The "Avalon" Framework XAML
  • 10. Avalon Engine Avalon построен на DirectX Векторная графика легко масштабируется без участия разработчика и пользователя Avalon использует аппаратное ускорение, если видеокарта это позволяет
  • 11. Avalon Framework Элементы управления можно создавать с нуля Также Avalon предоставляет разработчикам примитивы, на основе которых можно создавать собственные контролы
  • 12. XAML XAML – язык разметки для декларативного представления пользовательского интерфейса XAML отделяет представление пользовательского интерфейса от кода и позволяет разработчикам и дизайнерам работать более продуктивно
  • 13. Совместная работа С помощью XAML дизайнеры и разработчики могут выйти на новый уровень Создает дизайн взаимодействия Добавляет бизнес логику
  • 15. Где используется XAML? .NET Framework 3 и выше Windows Presentation Foundation Windows Workflow Foundation Silverlight (в т.ч. для Windows Phone) Windows Runtime XAML Framework
  • 16. Как создается XAML? Разметка основана на XML, поэтому может быть написана в любом текстовом редакторе Существуют WYSIWYG- редакторы, наиболее популярный – Expression Blend
  • 19. Стили и шаблоны Позволяют определить отображение контролов Можно переопределить стандартные шаблоны Могут быть включены в описание элемента, могуть быть общими для контрола, могут быть вынесены в ресурсы
  • 20. Расширения разметки Markup Extensions используются для получения значения, которое не является ни примитивным, ни специфичным xaml- типом Расширение разметки записывается внутри фигурных скобок в значении атрибута
  • 21. Связывание данных Data Binding используется для отображения и взаимодействия с данными Позволяет автоматически изменять свойства элемента пользовательского интерфейса при обновлении данных Синтаксис соответствует расширению разметки: {Binding …}
  • 22. Трансформация и анимация Различные трансформации (поворот, перемещение, масштабировани е, наклон) и изменение свойств элементов пользовательского интерфейса во времени также могут быть заданы декларативно в разметке XAML
  • 24. Как это работает? Разметка компилируется в файл .BAML Он включается в сборку как ресурс На этапе выполнения движок извлекает файл .BAML из сборки, парсит его и создает визуальное дерево или workflow
  • 25. Как это работает? При использовании WPF, Silverlight и WinRT разметка описывает пользовательский интерфейс При использовании WF разметка описывает декларативную логику, файл имеет расширение .XOML. Формат сериализации также изначально назывался XOML
  • 26. Спецификация Xaml Information Set Процесс конвертации XML-документа в Xaml Information Set Xaml Schema Information Set
  • 27. Спецификация: Xaml Information Set Xaml Information Set – определяет структурированную информацию, которую объект Xaml может представлять Термин “xaml-документ” означает xml- документ, описывающий Xaml Information Set
  • 28. Спецификация: конвертация XML- документа Спецификация определяет правила, по которым xml-документ трансформируется в струкрурированную информацию Xaml Information Set
  • 29. Спецификация: Xaml Schema Information Set Эти правила могут быть расширены на основании различных XAML- словарей, определяющих схему документа Способы задания таких словарей описаны в разделе спецификации Xaml Schema Information Set
  • 30. Различные реализации XAML (словарей) Windows Presentation Foundation Silverlight 3 Silverlight 4 Windows Runtime XAML Framework
  • 32. Полезные ссылки Спецификации XAML http://cut.ms/bHgn MSDN: WPF XAML http://cut.ms/bHgo MSDN: Silverlight XAML http://cut.ms/bHgp MSDN: WinRT XAML http://cut.ms/bHgq
  • 33. СПАСИБО ЗА ВНИМАНИЕ! Сергей Звягин BingoRUS