При обсуждений WPF важно отметить ту работу, которая была проведена для поддержки процесса взаимодействия разработчика и дизайнера. Понятно, что разработчик может лишь попытаться создать дизайн пользовательского интерфейса. Само собой разумеется, что разработчики не являются хорошими дизайнерами интерфейсов пользователя.
Однако даже в тех случаях, когда в проектах принимали участие дизайнеры — часто либо дизайн приложения оказывался не слишком хорош, либо его реализация была очень трудной. У дизайнеров имелись свои инструменты, которые не взаимодействовали с инструментами разработчиков. Дизайн часто предоставлялся команде разработчиков в виде картинок либо в виде простого HTML. Разработчикам часто приходилось реализовывать тонкости дизайна параллельно с написанием кода своего решения. В итоге все были недовольны. Дизайн никогда не становился таким, каким он был задуман, и разработчики тратили слишком много времени на достижение нужного внешнего вида.
WPF старается изменить такое положение вещей. Код разметки (XAML) пользовательского интерфейса полностью отделен от кода реализации (на языке C# или VB). Кроме того, фирма Microsoft предоставляет инструменты конструирования, позволяющие дизайнерам создавать реальные интерфейсы пользователя, которые могут быть использованы командой разработчиков. Нет больше никаких "трудностей перевода". Дизайнер может создать или открыть элемент пользовательского интерфейса WPF, отредактировать его при помощи Expression Blend (ему не нужно изучать Visual Studio) и сохранить его в составе решения (или послать его разработчику). Разработчик может затем открыть этот элемент внутри Visual Studio и начать наполнять события пользовательского интерфейса своим кодом. Такой обмен между ними может продолжаться в течение всей разработки пользовательского интерфейса. Никто не ругает чужой код; все используют свои сильные стороны.
На рис. 1.28 показан пример из инструмента Expression Blend. Обратите внимание, что здесь открыт тот же хат1-файл (форма WPF). Дизайнеры могут пользова+ься знакомым им инструментом для компоновки интерфейса пользователя и применения таких визуальных техник, как трехмерная графика и анимация. Обратите также внимание на то, что для поддержания связности между решениями используется файл проекта С#. После того как дизайнеры завершат свою работу, сохраненные ими результаты поступают в команду разра
ботчиков. Они могут даже протестировать пользовательский интерфейс в контексте приложения (при помощи сборки и запуска проекта).