+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 93.25 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

WPF в Visual Studio 2010 - Часть 1 : Вступление

01.03.2010 17:02

С того момента, как релиз-кандидат 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 для оптимизации скорости нового пользовательского интерфейса. Я попрошу и других членов нашей команды написать о своем участии в процессе разработки, и мы, возможно, позднее вернемся к теме настройке производительности. Кроме того, не стесняйтесь задавать в комментарии вопросы, которые Вас интересуют, поскольку это поможет мне в создании оставшейся части серии.

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

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года