Avalon - новая графическая система Lonhgorn. На ней и будет основан новый трехмерный интерфейс Aero. Ниже помещен обзор ноябрьского CTP (тестовой версии). После ноябрьской версии было еще два релиза - в марте и мае. Ссылки на них приведены в конце статьи.
Что такое Avalon?
Avalon – это рабочее название новой графической подсистемы (presentation subsystem) Windows. Он содержит движок отображения и основанный на managed-коде Framework. Avalon унифицирует отображение и манипуляцию документами, мультимедиа-контентом и пользовательским интерфейсом. Он позволяет разработчикам и дизайнерам создавать богатый и современный GUI рассчитанный на пользователей с разным опытом.
Движок Avalon – унифицирует создание документов, мультимедиа, UI обеспечивая общий runtime для Web-интерфейсов, базирующегося на формах GUI, графики, видео, аудио и документов. Avalon создан как надстройка над DirectX, открывающим для него всю мощь современных компьютеров и позволяющим использовать новые возможности компьютерного железа. Например, движок рендеринга векторной графики, входящий в Avalon, открывает перед приложениями возможность масштабирования изображения, что позволяет задействовать преимущества мониторов, поддерживающих высокие разрешения, при этом не требуя дополнительной работы от программиста или усилий от пользователя. Если Avalon обнаруживает видеокарту, поддерживающую аппаратное ускорение, он автоматически использует эту поддержку.
Фреймворк Avalon – это managed-фреймворк, являющийся объектной надстройкой над движком Avalon. Центральное место во фреймворке Avalon занимает набор control-ов, реализующих примитивы фигур, поддержку отображения изображений, видео, анимации, 3D и панелей, позволяющих располагать в них control-ы и контент. Эти примитивы являются строительными блоками для создания графики нового поколения.
XAML – язык разметки, предназначенный для декларативного создания графического интерфейса Windows-приложений. Он расширяет набор средств, которые разработчики и дизайнеры могут применять для создания графического интерфейса. Парадигма Avalon-а должна показаться близкой Web-разработчикам, так как XAML похож на HTML. Кроме всего прочего, XAML позволяет отделить дизайн UI от связанного с ним кода, позволяя разработчикам и дизайнерам работать параллельно над одной и той же задачей.
Разработчикам и дизайнерам Avalon предоставляет унифицированную платформу, позволяющую использовать для создания UI единую парадигму. .NET-разработчикам этот фреймворк должен показаться близким. Он должен значительно сократить количество кода, требуемое для создания интерфейса, наиболее удобного для пользователя. Для дизайнеров Avalon представляется как платформа, позволяющая устранить границы между контентом, мультимедиа и приложением.
Ноябрьский Community Technical Preview Avalon
На Professional Developers Conference (PDC) в октябре 2003 года Microsoft продемонстрировал Avalon как часть WinFX API (нового managed API следующей версии Windows – Longhorn). Пользователи прислали множество (формальных и неформальных) откликов по поводу WinFX, в которых, в частности, просили о том, чтобы WinFX был доступен и на предыдущих версиях Windows. В итоге Microsoft принял решение о том, что такие части WinFX, как Avalon и Indigo, будут доступны на Windows XP и Windows Server 2003.
Команда Avalon-а в последнее время усилено трудилась над поддержкой указанных ОС и в текущей CTP Community Technical Preview мы можем лицезреть первые плоды этого труда. Как и другие CTP-версии, эта не тестировалась так же тщательно, как бета-версии, и может быть нестабильной, показывать плохую производительность или конфликтовать с другими приложениями. Естественно, что эта версия не поддерживается Microsoft официально, а все аспекты ОО-модели и API могут быть изменены в дальнейшем. Microsoft разумно советует не ставить эту версию Avalon на машины, от которых зависит ваш бизнес или счастье :). (В проведенных нами экспериментах Avalon работал довольно устойчиво и никак не влиял на другие подсистемы Windows. Впрочем, тут каждый решает сам – прим.ред.)
Инсталляция Avalon
Для работы Avalon требуется .NET Framework 2.0 Beta 1. Это может быть оригинальная версия 40607.16 или версия 40607.47, поставляемая с августовской CTP-версией Whidbey (вместе с Avalon поставляется версия .NET Framework 40607.51 – прим.ред.). С точки зрения требований к железу CTP Avalon требует минимум: 1 ГГц Pentium, 256 MB оперативной памяти и видеокарту, совместимую с DirectX 9. Рекомендуется использовать видеокарты типа ATI Radeon 9600, nVidia GeForce 4 или более быстрые. Это не окончательные требования к железу. Окончательные еще не были анонсированы.
Что вошло в CTP-версию?
Наиболее интересными возможностями данной версии являются:
Поддержка текущих версий ОС. Avalon можно использовать на Windows XP Service Pack 2 или на Windows Server 2003. Для распространения Avalon на этих ОС будет использоваться схема, сходная со схемой распространения .NET Framework. Avalon поддерживает темы Windows XP. Avalon предоставляет поддержку Tablet PC. Так, control-ы, входящие в Avalon, поддерживают перьевой ввод. Также облегчено создание новых control-ов, поддерживающий перьевой ввод.
Возможности, связанные с control-ами и их расположением на экране. Появилось несколько новых control-ов, среди которых ToggleButton, TabControl и ViewBox. Появилась новая концепция раскадровки (storyboard) предоставляющая механизм, позволяющий управлять анимацией сразу нескольких объектов. Наконец, расширены сервисы связывания с данными (binding services). Теперь они поддерживают асинхронное связывание с данными, проверку достоверности вводимых данных (update validation) и лучшее оформление.
Расширение поддержки 3D. В WinHEC-версии Longhorn была продемонстрирована функциональность, связанная с 3D-отрисовкой, включающая возможности рендеринга 3D-моделей и освещения 3D-сцен. CTP расширяет эту функциональность. Объект AdvancedMaterial инкапсулирует кисть (brush) и позволяет применять ее в качестве текстуры к поверхностям 3D-примитивов.
Появилась возможность проверки попадания точки в некоторую 3D-поверхность (3D surfaces hit testing), позволяющая детализировать генерируемые control-ом сообщения мыши. Подробнее об усовершенствовании работы с 3D в этой версии можно прочитать по адресу.
Другие усовершенствования. Продолжая совершенствовать API Avalon-а, программисты Microsoft привели в порядок его объектную модель и улучшили его согласованность и удобство использования. Улучшения затонули управление окнами (windowing), текст, навигацию, журналирование (journaling) и связывание с данными (data binding). В CTP-версии также увеличена скорость работы Avalon-а (хотя как говорилось раньше, делать выводы о производительности и требованиях к аппаратному обеспечению еще рано). Особенно хорошо заметно увеличение производительности в Grid-панели, TextBox-е и поддержке прокрутки. Наконец, Avalon стал лучше поддерживать «глобализацию» (перевод интерфейса на другие языки). Улучшения в этой области включают: дву-направленное редактирование текста, поддержку control-ами работы в режиме справа-налево, поддержку технологии ClearType для восточно-азиатских стран, а также локализации ресурсов.
WinFX SDK
В поставку текущей версии входит ранняя версия WinFX SDK. Она включает документацию, утилиты и примеры, призванные упростить создание managed-приложений с использованием Avalon. Поскольку это промежуточная версия (пре-бета), документация и примеры могут быть неполными или неточными. Об известных проблемах можно узнать из прилагающегося описания.
Эта версия так же включает базовые средства для поддержки Avalon-а средой разработки Visual Studio 2005. Среди них визарды для создания WUI- и GUI-приложений, набор control-ов, поддержка IntelliSense (как для кода, что само собой разумеется для любых .NET-библиотек, так и для XAML), поддержка отладки и интеграция help-а по Avalon-у с help-ом VS. Описание (release notes), входящее в поставку, содержит замечания по последовательности установки и другим аспектам процесса установки.
Обзор новых возможностей
Этот список не полон. Он дает поверхностный обзор новых возможностей, имеющихся в данной версии. Более полную информацию можно получить из SDK.
Новые элементы управления
В этой версии в состав Avalon вошел ряд новых control-ов:
ViewBox – это control-декоратор с помощью которого дочерние control-ы могут быть растянуты или смаштабированы, чтобы занимать все доступное пространство. Это позволит создавать макеты, которые приемлемо будут отображаться на низком разрешении, и в то же время способные использовать при отображении преимущества устройств, поддерживающих высокое разрешение. ViewBox ограничивает некоторую область UI и позволяет динамически растягивать векторную составляющую до своих размеров. Несмотря на тип содержимого – картинки, control-ы, 3D-поверхности – дочерних элементов ViewBox, производится автоматическое масштабирование содержимого.
TabControl достаточно давно является общепринятым решением для оптимизации использования экранного пространства. Avalon содержит свой собственный TabControl. Интересный пример совместного использования TabControl и анимации с использованием KeyFrames (ключевых кадров), можно найти по адресу.
ToggleButton – этот control предназначен для отображения булевых значений. Например, можно использовать ToggleButton в тулбаре для индикации, выделен ли текст жирным шрифтом. CheckBox и RadioButton являются подклассами ToggleButton, изменяющими его визуальное представление.
Раскадровка
Одним из ключевых аспектов Avalon является включение анимации в программную модель. В ранних версиях Avalon уже содержалось понятие свойств зависимости (dependency properties), то есть свойств объектов Avalon, которые могут быть анимированы. Однако возможности координации различных анимаций с использованием различных объектов и временных последовательностей не было. Теперь появились раскадровки. Они предоставляют возможность группировать и синхронизировать несколько анимаций. Это позволяет запускать, останавливать, прерывать или перезапускать анимации. Раскадровки позволяют создавать более сложные типы анимации.
Текст и шрифты
Одно из ключевых достоинств движка Avalon – огромное количество работы по улучшению читаемости. Во всех отношениях, от субпиксельного clear-type до адаптивной заливки текстом, Avalon поднимает читаемость текста в Windows на новый уровень. Новый класс Fonts предоставляет средства перечисления гарнитур и семейств шрифтов из системного каталога или из мест, определяемых пользователем. Пример поддержки шрифтов можно найти по адресу.
Анимация текста
В этой версии существенно улучшена анимации текста. Свойство TextEffects можно использовать для анимации отдельных символов текста. В следующем примере слово "world", например, перемещается по экрану:
Можно применять и такие преобразования, как масштабирование или поворот символов.
Улучшение Layout Control-овp
Дизайнеры и разработчики, работающие над расположением contol-ов на экране, часто обращаются к различного вида layout-сеткам и таблицам для упорядочивания расположения элементов страницы. Avalon Grid control заполняет эту нишу. В этой версии появились слои, абсолютное позиционирование и гибкое масштабирование контента. Avalon содержит также и Table control.
Связывание с данными
Несколько новых возможностей связывания с данным в Avalon включают асинхронное связывание, а также множественное связывание (multi binding), позволяющее подключение коллекции связей к одному свойству. К сожалению, примеров использования новых возможностей пока нет. Однако понять, что это такое, можно, внимательно прочитав описание библиотеки классов System.Windows.Data.
Что не вошло в эту версию?
Несколько предостережений:
Поддержка аудио, видео и печати в этой версии отсутствует. Все это появится в следующей CTP-версии. Некоторые демонстрации, использующие эти возможности, либо не скомпилируются, либо просто не будут работать корректно.
Поддерживается только голубая тема Windows XP. Если попытаться запустить Avalon на машине с серебряной или оливковой цветовой схемой, окно будет выглядеть как черный прямоугольник. В качестве обхода можно предложить переключиться на цветовую схему, используемую по умолчанию, и полностью отключить поддержку тем XP, или же сделать копии файла:
Secure Execution Environment (SEE) в этой версии не поддерживается. Следующие версии будут включать основанную на Code Access Security песочницу для запуска приложений в изолированном безопасном окружении.
Небольшой пример
На рисунке 1 показан пример интерфейса, созданного средствами Avalon, и динамически изменяющегося при выборе одного из портретов пользователей. Интересно, что все приложение создано средствами XML (не содержит ни одной строки кода), а все графические элементы, кроме изображений людей, созданы средствами Avalon.
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.099 секунд (Общее время SQL: 0.082 секунд - SQL запросов: 53 - Среднее время SQL: 0.00155 секунд))