Продолжается подписка на наши издания! Вы не забыли подписаться?

Avalon – ноябрьский Community Technical Preview

Авторы: Tim Sneath
Karsten Januszewski
Arik Cohen
Что такое Avalon?
Ноябрьский Community Technical Preview Avalon
Инсталляция Avalon
Что вошло в CTP-версию?
WinFX SDK
Обзор новых возможностей
Новые элементы управления
Раскадровка
Текст и шрифты
Анимация текста
Улучшение Layout Control-ов
Связывание с данными
Что не вошло в эту версию?
Небольшой пример
Заключение

Что такое Avalon?

Avalon – это рабочее название новой графической подсистемы (presentation subsystem) Windows. Он содержит движок отображения и основанный на managed-коде Framework. Avalon унифицирует отображение и манипуляцию документами, мультимедиа-контентом и пользовательским интерфейсом. Он позволяет разработчикам и дизайнерам создавать богатый и современный GUI рассчитанный на пользователей с разным опытом.

Разработчикам и дизайнерам 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-версию?

Наиболее интересными возможностями данной версии являются:

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-ов:

Раскадровка

Одним из ключевых аспектов Avalon является включение анимации в программную модель. В ранних версиях Avalon уже содержалось понятие свойств зависимости (dependency properties), то есть свойств объектов Avalon, которые могут быть анимированы. Однако возможности координации различных анимаций с использованием различных объектов и временных последовательностей не было. Теперь появились раскадровки. Они предоставляют возможность группировать и синхронизировать несколько анимаций. Это позволяет запускать, останавливать, прерывать или перезапускать анимации. Раскадровки позволяют создавать более сложные типы анимации.

Текст и шрифты

Одно из ключевых достоинств движка Avalon – огромное количество работы по улучшению читаемости. Во всех отношениях, от субпиксельного clear-type до адаптивной заливки текстом, Avalon поднимает читаемость текста в Windows на новый уровень. Новый класс Fonts предоставляет средства перечисления гарнитур и семейств шрифтов из системного каталога или из мест, определяемых пользователем. Пример поддержки шрифтов можно найти по адресу http://winfx.msdn.microsoft.com/?//winfx.msdn.microsoft.com/winfx/sampledocs/text/wcpsamp_layout_typography4.aspx.

Анимация текста

В этой версии существенно улучшена анимации текста. Свойство TextEffects можно использовать для анимации отдельных символов текста. В следующем примере слово "world", например, перемещается по экрану:

Рисунок 1.

<Text>
  <Text.TextEffects>
    <TextEffect CharacterIndex="6" Count="5">
      <TextEffect.Transform>
        <TranslateTransform>
          <TranslateTransform.Y>
            <DoubleAnimation IsAdditive="True" 
                             Duration="10" 
                             RepeatBehavior="Forever" 
                             From="-20" To="20"/>
          </TranslateTransform.Y>
        </TranslateTransform>
      </TextEffect.Transform>
    </TextEffect>
  </Text.TextEffects> 
Hello world 
</Text>

Можно применять и такие преобразования, как масштабирование или поворот символов.

Улучшение Layout Control-ов

Дизайнеры и разработчики, работающие над расположением contol-ов на экране, часто обращаются к различного вида layout-сеткам и таблицам для упорядочивания расположения элементов страницы. Avalon Grid control (http://winfx.msdn.microsoft.com/?//winfx.msdn.microsoft.com/winfx/ref/ns/system.windows.controls/c/grid/grid.aspx) заполняет эту нишу. В этой версии появились слои, абсолютное позиционирование и гибкое масштабирование контента. Avalon содержит также и Table control (http://winfx.msdn.microsoft.com/?//winfx.msdn.microsoft.com/winfx/ref/ns/system.windows.documents/c/table/table.aspx).

Связывание с данными

Несколько новых возможностей связывания с данным в Avalon включают асинхронное связывание, а также множественное связывание (multi binding), позволяющее подключение коллекции связей к одному свойству. К сожалению, примеров использования новых возможностей пока нет. Однако понять, что это такое, можно, внимательно прочитав описание библиотеки классов System.Windows.Data (http://winfx.msdn.microsoft.com/?// winfx.msdn.microsoft.com/winfx/sampledocs/dataservices /colors.aspx).

Что не вошло в эту версию?

Несколько предостережений:

\Windows\Resources\Themes\Luna\PresentationFramework.Luna.NormalColor.FxStyles

для серебряной схемы:

\Windows\Resources\Themes\Luna\PresentationFramework.Luna.Metallic.FxStyles 

и оливковой схемы, соответственно:

\Windows\Resources\Themes\Luna\PresentationFramework.Luna.Homestead.FxStyles 

Небольшой пример

На рисунке 1 показан пример интерфейса, созданного средствами Avalon, и динамически изменяющегося при выборе одного из портретов пользователей. Интересно, что все приложение создано средствами XML (не содержит ни одной строки кода), а все графические элементы, кроме изображений людей, созданы средствами Avalon.

Рисунок 1. Динамическое изменение интерфейса (skins).

Заключение

Avalon CTP – это продолжение усилий Microsoft по обеспечению прозрачности разработки ПО для пользователей. Эта версия Avalon выпущена для того, чтобы получить отклик от сообщества разработчиков.


Copyright © 1994-2016 ООО "К-Пресс"