Возможности применения Windows Presentation Foundation и Silverlight 2.0 Андрей Скляревский Developer, Murano Software Microsoft Most Valuable Professional
Главные проблемы Windows Forms Медленная основа в виде GDI+ предел возможностей платформы; Ограничения по позиционированию элементов; Существенные трудности при создании нестандартного дизайна; Отсутствие средств создания анимаций.
WPF: НОВАЯ ОСНОВА ПРЕДСТАВЛЕНИЯ WINDOWS Windows Presentation Foundation
XAML: декларативное описание объектов; Элементы управления: панели, кнопки, текстовые поля, меню, списки и т.д.; Представление: векторная графика, поддержка вывода видео- и аудио- содержимого; Данные: поддержка одно- и двухсторонней связи элементов окна с объектами; Direct3D: аппаратное ускорение вывода.
eXtensible Application Markup Language XML язык; Привязка элементов и атрибутов к.NET объектам, их свойствам и событиям; Дизайнер в Expression Blend работает напрямую с XAML;
ЭЛЕМЕНТЫ УПРАВЛЕНИЯ Windows Presentation Foundation
Гибкие свойства Экземпляр наследуемого от DependencyObject класса является контейнером любого числа свойств; Большинство свойств такого класса имеют соответсвующий статический объект типа DependencyProperty, являющийся определителем этого свойства; Объекту можно установить значение свойства, которого у него на самом деле нет, вызвав метод SetValue ;
Удобные панели StackPanel размещает элементы друг за другом вертикально или горизонтально; Grid размещает элементы в таблице:
Удобные панели DockPanel размещает элементы согласно их привязке по краям; WrapPanel размещает элементы друг за другом по мере возможности, при нехватке места переносит элемент на новую строку; Canvas абсолютно позиционирует элементы, согласно их X и Y координатам; Кроме этого есть: VirtualizingPanel, TabPanel, ToolBarOverflowPanel, UniformGrid и другие.
Элементы управления Настраиваемый вид благодаря свойствам OverrideDefaultStyle и Template; Элементы являются контейнерами, например, в кнопку можно вставить и картинку и другие элементы; Нет аналогов для DateTimePicker и DataGridView из Windows Forms; Внутренние свойства ориентированы на данные, т.е. ListView.SelectedItems содержит в себе объекты, предоставленные через ListView.ItemsSource, а не какие-либо другие.
Настройка дизайна на уровне приложения в App.xaml
ГРАФИКА, АНИМАЦИЯ И ЗВУК Windows Presentation Foundation
Графика Множество объектов векторной графики: прямоугольники, эллипсы, линии и т.д. которые декларативно описываются в XAML; Рисовать можно в Expression Blend, есть так же и другие редакторы (в том числе и с открытым исходным кодом); Поддерживаются трансформации любых визуальных объектов, кроме элементов интеграции с Windows Forms;
Трансформации Исходное окно: То же окно с применённой трасформацией размера (на 10%) и скашивания (-10°)
Анимации Все анимации имеют универсальный характер, т.е. нет OpacityAnimation для анимирования степени прозрачности окна, но есть DoubleAnimation, позволяющий анимировать свойство Opacity (и другие свойства типа Double) любого объекта; Анимации записываются в объект Storyboard, которая занимается их представлением при вызове метода Begin; Есть возможность декларативно описать вызов анимации по событию элемента управления на окне;
MediaElement и Image MediaElement: проигрывает видео и аудио потоки, при этом, поддерживая и трансформации; Image: позволяет выводить изображения типов.bmp,.gif,.ico,.jpg,.png,.wdp, and.tiff, не поддерживает GIF-анимацию;
ПРИВЯЗКА ДАННЫХ К WPF ЭЛЕМЕНТАМ Windows Presentation Foundation
Односторонняя связка namespace приложения источник данных привязка
Двухсторонняя связка Show them привязка
SILVERLIGHT 2.0 Внедряемый в браузер компонент
Проблемы HTML + DOM Существенные ограничения по отрисовке графики и производительности; Проблемы с кросс-браузерностью: каждый браузер имеет собственное представление о Веб-стандартах; Необходимость использовать JavaScript, почти без ООП и почти без простых путей;
Решение: Silverlight 2 Полноценная платформа для RIA – Rich Interactive Application («богатое интерактивное приложение»); Позволяет выводить загружаемый с сервера XAML прямо в браузере; Содержит в себе самые важные части.NET Framework 3.5 (LINQ, XML, communications, serialization, etc.) и множество элементов из WPF;
WPF Everywhere Silverlight 2.0 имеет практически идентичную WPF архитектуру вывода графики; Поддерживается вывод видео и аудио потоков из Сети; Позволяет сохранять данные в IsolatedStorage на компьютере клиента; Крайне безопасный – нет доступа ни к файлам, ни к GAC установленного.NET, и т.д.; Будут почти все элементы из WPF, а возможно и что- то новое (DataGrid); Есть ограниченный доступ к DOM модели странички с элементом, т.е. для взаимодействия с ней можно использовать код на C#;
Содержит Dynamic Language Runtime Среда для выполнения динамических языков вроде Python, Ruby и JScript.NET; Полная интеграция динамических языков в.NET среду – наивысшая производительность; Возможность комбинирования приложения: написания части кода на динамических языках, а части на C# или VB.NET;
Кросс-платформенный Silverlight 2.0 разрабатывается для: – Windows (XP/Server 2003/Vista): Firefox Internet Explorer Opera (запланировано в будущем) – Mac OS X: Safari Firefox Opera (запланировано в будущем) – Linux (проект Moonlight при поддержке Microsoft): Firefox Konqueror
ДЕМОНАСТРАЦИЯ ПРОЕКТА ДЛЯ SILVERLIGHT 1.1 ALPHA PREVIEW На рисунке: Oridea A1
Андрей Скляревский, Developer, Murano Software Microsoft Most Valuable Professional