(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

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 с такой стороны, с какой Вы никогда не видели ее раньше!

Visual Studio 2010. 3D-проекция.

Новые возможности WPF

Вот список возможностей WPF, появившихся в версии 4.0, которые используются в Visual Studio 2010. Я, может быть, и пропустил несколько (надеюсь, не самых важных). Но, если и так, я опишу эти возможности в следующих публикациях.

  1. Visual Studio использует новый текстовый стек WPF на основе DirectWrite. Этот механизм изменяет алгоритм отрисовки текста в WPF, больше ориентирует его на шрифты малого размера для дисплеев низкого разрешения (96 точек на дюйм). В двух словах, это означает, что текст должен быть более четким и читаемым, чем если бы мы использовали WPF 3.5. Подробнее Вы можете прочитать об этом в блоге команды работы с текстом WPF. Visual Studio использует новый режим "Display" для отрисовки главного окна, меню, панели инструментов, строки состояния и в Редакторе Текста.
  2. Редактор Текста использует новую функцию WPF, улучшающую скорость прокрутки, если выбран режим программного рендеринга, например, при работе с удаленным рабочим столом. Вместо того, чтобы перерисовывать всю область просмотра в редакторе, механизм WPF может распознать, когда необходима горизонтальная или вертикальная прокрутка и оптимизировать операции отрисовки. WPF достаточно отправить небольшую макро-команду "прокрути этот прямоугольник", а затем отрисовать только те точки изображения, которые появились в области просмотра. Для небольшой прокрутки, например, прокрутки одной строки в редакторе, это огромная экономия в количестве данных, передаваемых по сети. Называется новое свойство Visual.VisualScrollableAreaClip.
  3. Алгоритм размещения панелей инструментов WPF и группируемых панелей (StackPanels) в целом был оптимизирован для повышения производительности. Рико Мариани (Rico Mariani) описывал эту функцию еще применительно к первой бета-версии, и результаты этого улучшения четко видны для всех, кто интенсивного использует панели инструментов  WPF в своих приложениях. Эта функция принесет ощутимую пользу для всех WPF 4.0-приложений, причем не нужно будет делать никаких изменений в коде, чтобы воспользоваться всеми ее преимуществами.
  4. Небольшой, но важной функцией для Visual Studio является возможность создания основного окна WPF, не показывая его. Это позволяет сделать метод NewWindowInteropHelper.EnsureHandle. Он используется в ситуациях, когда Visual Studio создается программно, например, в режиме "Design Time Extensibility " или при сборке приложения в режиме командной строки.
  5. Для взаимодействия с меню и панелями инструментов с клавиатуры в Visual Studio использует новую функцию WPF "режим меню" (MenuMode). Она позволяет перенаправить сообщения в меню или панель инструментов без "кражи" фокуса ввода у активного в данный момент элемента. Без этой функции некоторые сценарии в Visual Studio было бы невозможно осуществить на практике с использованием WPF. В целом же, проблема отслеживания фокуса ввода заслуживает отдельной публикации, и это будет одной из тем в будущих статьях этой серии.

Это все, что я хотел сказать в этой вводной публикации. У меня есть черновые наброски по другим темам, которые я хочу осветить, в том числе и "отслеживание фокуса ввода", о котором я только что говорил. Часть 2 будет охватывать советы по повышению эффективности, и некоторые приемы, которые мы использовали в WPF для оптимизации скорости нового пользовательского интерфейса. Я попрошу и других членов нашей команды написать о своем участии в процессе разработки, и мы, возможно, позднее вернемся к теме настройке производительности. Кроме того, не стесняйтесь задавать в комментарии вопросы, которые Вас интересуют, поскольку это поможет мне в создании оставшейся части серии.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 01.03.2010 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft 365 Business Basic (corporate)
Microsoft 365 Apps for business (corporate)
Microsoft 365 Business Standard (corporate)
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Microsoft Office для дома и учебы 2019 (лицензия ESD)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Мир OLAP и Business Intelligence: новости, статьи, обзоры
Новые программы для Windows
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100