WPF в Visual Studio 2010 - Часть 1 : ВступлениеИсточник: msvisualstudio2010
С того момента, как релиз-кандидат Visual Studio 2010 стал общедоступным, мы начали получать вопросы от любознательных пользователей о том, как же устроена сама среда Visual Studio 2010. В частности, один из спрашивающих хотел бы знать, будем ли мы использовать все "волшебство" WPF только в своих целях. Будьте уверены, что ответом будет решительное "нет!". Мы хотим, чтобы наши пользователи могли воспользоваться всеми преимуществами WPF 4.0 и в собственных приложениях. Это первая статья из серии публикаций, в которых будут изложены некоторые советы, описаны приемы и новые возможности WPF 4.0, которые мы используем в Visual Studio 2010. Некоторые из них базируются на моем докладе на конференции профессиональных разработчиков (Professional Developers" Conference) в Лос-Анджелесе в ноябре прошлого года. Почему WPF?Одним из первых заданных вопросов является вопрос "почему Вы выбрали WPF?". Я попытаюсь дать несколько ответов. С момента выпуска первой версии WPF NET 3.0, клиенты спрашивали нас, Microsoft, "Если WPF настолько чудесна, почему же Вы не используете ее для ваших собственных приложений?. Какие из продуктов Microsoft построены с использованием WPF? Как мы можем делать ставку на WPF, если Microsoft не готова использовать ее в своих собственных приложениях? ". "На заре" WPF это были справедливые критические замечания, и было немало здоровых дискуссий о том, готова ли WPF для использования в крупных коммерческих или LOB (Line of Business) приложениях. В то время, вероятно, самым крупным и наиболее очевидным примером приложения Microsoft, написанного с использованием WPF, было приложение Microsoft Expression Blend, и оно, безусловно, доказало жизнеспособность платформы. Кроме того, выбор WPF был обусловлен и с точки зрения архитектуры. Visual Studio имеет давнюю программную базу, некоторые компоненты и технологии которой уходят корнями еще к Visual C++ 6 и Visual Basic 5 десятилетней давности. (Если у Вас есть время, Вы можете совершить исторический экскурс, прочитав великолепную подробную серию публикаций Рико Мариани (Rico Mariani) по истории Visual Studio). Долгосрочная перспектива развития Visual Studio предусматривает некоторые особенности, расширяющие область ее применения, которые нынешняя архитектура уже не может поддерживать. Архитектурные нововведения в Visual Studio 2010 не ориентированы исключительно на полный переход к WPF, а предназначены для создания презентационно-нейтральной (presentation neutral) архитектуры, которая позволила бы нам отделить основную бизнес-логику от уровня визуализации и дала бы гибкость, необходимую для будущих версий. Как технология, WPF, по сути, предоставляет именно такую архитектуру "разделенного представления" (separated presentation), которую часто называют "Модель, вид, контроллер" (Model, View, Controller) или "Модель, вид, докладчик" (Model, View, Presenter). Кроме того, в качестве планов развития Visual Studio 2010 несколько групп разработчиков, заявили о своих намерениях создать ряд совершенно новых компонентов с использованием WPF. В качестве тривиального примера можно привести новый редактор текста (Text Editor), но было заявлено и достаточно других (новый Architecture Explorer и просмотрщик графиков, инструменты для параллельной отладки, например) для того, чтобы мы поняли, что необходимо внести изменения и в остальные элементы среды разработки в целях поддержки WPF как первого слоя визуализации. Очевидно, должен существовать некий код, совместно используемый разработчиками для успешной общей работы. Какие части IDE используют WPF?Вся "обстановка" в IDE реализована на WPF. Под этим я имею в виду, что все рамки и украшения документа,и служебные окна являются частью "визуального дерева" (Visual Tree) WPF. В него включены главное меню, панели инструментов, контекстные меню и панель статуса. Документ в целом - по сути, вся система управления окном - тоже WPF, включая оверлейные слои, которые появляются при перетаскивании окон. Обновленная стартовая страница (Start Page) так же полностью реализована на WPF и, при желании, Вы можете написать свою собственную замену стартовой странице на XAML. Я уже говорил о новом Редакторе Текста (пишу с большой буквы из уважения к фантастической работе, проделанной группой его разработчиков), который был создан с нуля с использованием WPF. Использование WPF в редакторе открывает для разработчиков возможности усовершенствования редактора путем создания впечатляющих расширения написанием всего нескольких строк кода. Несколько других часто используемых текстовых окон, такие, как "Вывод даннах" (Output) и "Cписок найденного" (Find Results List) также базируются на новом Текстовом Редакторе. Другие часто используемые окна, такие как обозреватель решений (Solution Explorer) и панель инструментов (Toolbox) не были преобразованы. По большому счету, большинство из служебных окон в этом релизе не было затронуто. Частично это связано с нехваткой времени (у нас просто не было времени и сил, чтобы преобразовать все в WPF), отчасти потому, что в этом нет насущной необходимости, и отчасти потому, что мы продолжаем поддержку других визуальных технологий, таких как Win32 и Windows Forms .Действительно, некоторые компоненты, такие как Windows Forms Designer, было бы неестественно и не нужно конвертировать в WPF. Чтобы самостоятельно увидеть, какие части IDE реализованы на WPF, Вы можете использовать инструмент "Snoop", чтобы исследовать "визуальные деревья" WPF в Visual Studio. Удостоверьтесь, что используете самую свежую версию 4.0 и оцените потрясающую 3D-проекцию, чтобы увидеть Visual Studio с такой стороны, с какой Вы никогда не видели ее раньше! Новые возможности WPFВот список возможностей WPF, появившихся в версии 4.0, которые используются в Visual Studio 2010. Я, может быть, и пропустил несколько (надеюсь, не самых важных). Но, если и так, я опишу эти возможности в следующих публикациях.
Это все, что я хотел сказать в этой вводной публикации. У меня есть черновые наброски по другим темам, которые я хочу осветить, в том числе и "отслеживание фокуса ввода", о котором я только что говорил. Часть 2 будет охватывать советы по повышению эффективности, и некоторые приемы, которые мы использовали в WPF для оптимизации скорости нового пользовательского интерфейса. Я попрошу и других членов нашей команды написать о своем участии в процессе разработки, и мы, возможно, позднее вернемся к теме настройке производительности. Кроме того, не стесняйтесь задавать в комментарии вопросы, которые Вас интересуют, поскольку это поможет мне в создании оставшейся части серии. |