Microsoft TechDayshttp:// Роман Здебский Эксперт по технологиям разработки ПО Microsoft
Microsoft TechDayshttp:// Почему абсолютно все сразу не начинают использовать только новые замечательные технологии?
Microsoft TechDayshttp:// Широта использования Производительность Наработки и лучшие практики
Microsoft TechDayshttp:// Cэкономить вам много времени Защитить от ошибок Как правильно Как неправильно
Microsoft TechDayshttp:// Usability или удобство пользователя при использовании WPF Производительность в WPF Лучшие практики использования возможностей WPF
Microsoft TechDayshttp://
WPF Toolkit Финальный релиз! CTP Visual State Manager WPF.NET 4.0 Multi-touch Deep Zoom Visual State Manager Text
Microsoft TechDayshttp:// Очень много на Новые приложения на WPF – AutoCad 2009Inventor 2009
Microsoft TechDayshttp://
Источник: http://
Microsoft TechDayshttp://
Важный пункт 1 Важный пункт 2 Самый Важный пункт 3 Параметр1Парамер2Параметр3Параметр
Microsoft TechDayshttp://
Microsoft TechDayshttp:// Windows Vista User Experience Guidelines Designing with Windows Presentation Foundation Не начинайте с того что можно сделать на технологии, а с того, что действительно нужно вашим пользователям. Перед тем как добавить «стильный» функционал, подумайте, на каким сценариям работы он будет помогать.
Microsoft TechDayshttp:// Интерфейс выглядит стильно когда: Функционал действительно нужен пользователю Эстетика реализована в небольших деталях. Обеспечено повышенное удобство не в ущерб производительности. Положительные эмоции остаются даже на 100-ый раз просмотра Интерфейс НЕ выглядит стильно когда: Использованы эффекты технологии, только потому что она так может! Эффекты отвлекают внимание и нарушают удобство, процессы работы и производительность Надоедливость
Microsoft TechDayshttp:// Ключевые факторы: Частота использования Профессиональность пользователей Эмоциональный контекст Ожидания пользователей Концентрация внимания на нужных элементах Использование анимаций для интуитивного привлечения внимания на следующие шаги или контекстные действия – менее полсекунды Скорость анимаций не должна снижать производительность труда - ускорение анимации для опытных пользователей Использование аналогов реального мира для упрощения обучения Software branding – небольшие детали Привлеките профи в дизайне, если требуется
Microsoft TechDayshttp://
System.Windows.Media.RenderCapability.Tier Tier DirectXVideoCards 0Version
Microsoft TechDayshttp://
Performance Profiling Tools for WPF - детальная отладка производительности Snoop – быстрый просмотр структуры визуального дерева
Microsoft TechDayshttp:// Показатели приложение в целом Потребление видео памяти Аппаратный и программный рендеринг Определение проблемных зон программного рендеринга FPS (frames per second)
Microsoft TechDayshttp:// Растровые графические эффекты До версии 3.5 SP1 использовали только software rendering BlurBitmapEffect и DropShadowBitmapEffect в версии 3.5 SP1 – аппаратное ускорение Замена эффектов на аппаратные - BlurEffect, DropShadowEffect Могут существенно влиять на производительность!
Microsoft TechDayshttp:// Исправление software rendering
Microsoft TechDayshttp:// Иерархическое представление структуры визуализации Количество и вложенность элементов влияет на производительность Следует избегать избыточной вложенности контейнеров (StackPanel, Grid, WrapPanel…) При выводе большого набора данных количество элементов может стать огромным Контролируйте использование шаблонов элементов управления (templates) Упрощенное представление дерева в проекте
Microsoft TechDayshttp:// Детальный анализ производительности конкретных элементов пользовательского интерфейса Возможность анализа производительности иерархии визуального дерева
Microsoft TechDayshttp:// Производительность визуального дерева
Microsoft TechDayshttp:// Возможность автоматически уничтожать элементы визуального дерева вышедшие из зоны видимости и … … создавать входящие в зону видимости ListView, ListBox, TreeView и DataGrid Следите за возможным отключением виртуализации в ListBox/ListView: Проверьте, что ScrollViewer.CanContentScroll=True Проверьте, что VirtualizingStackPanel.IsVirtualizing=True Избегайте группировок, при большом числе элементов Используйте VirtualizingStackPanel при написании своих контролов …или напишите собственную. Container Recycling в WPF 3.5 SP % производительности за счет повторного использования элементов визуального дерева без их уничтожения и создания заново
Microsoft TechDayshttp:// Просмотр структуры визуального дерева Количество элементов Свойства элементов Поиск элементов ( ошибок binding ) События (events) Zoom 3D Zoom
Microsoft TechDayshttp:// Контроль визуального дерева и виртуализации
Microsoft TechDayshttp:// Страшная тайна про Outlook Позволяет максимально увеличить скорость скроллинга ScrollViewer.IsDeferredScrollingEnabled="True"
Microsoft TechDayshttp://
Добавление Splash Screen
Microsoft TechDayshttp:// Optimizing WPF Application Performance Performance Profiling Tools for WPF - детальная отладка производительности Improving Scrolling Performance in WPF 445f-b709-7f34437d8b21/Scrolling_in_WPF.doc
Microsoft TechDayshttp://
Улучшение четкости линий на экранах с низким разрешением WPF использует независимые единицы позиционирования и anti-aliasing SnapsToDevicePixels="True" Единица измерения – px (default) is device- independent units (1/96th inch per unit)
Microsoft TechDayshttp:// Тексты также рассчитаны на высокое качество вне зависимости от устройства Используется ClearType и SubPixel Anti-Aliasing Но мониторах слабого разрешения текст может выглядеть мягче Используйте адаптированные шрифты: Cambria, Calibri, Corbel, Candara, Consolas...) Измените настройки ClearType Подробнее -
Microsoft TechDayshttp:// SnapToDevicePixels
Microsoft TechDayshttp://
Архитектурная идея WPF – превалирование свойств над методами При связывании с данными (Binding) используйте ObjectDataSource XMLDataSource Старайтесь меньше использовать императивный подход определения связывания из кода Дизайнеры смогут вам очень помочь
Microsoft TechDayshttp:// Возможность декларативно определить способ представления повторяющихся данных в виде шаблона ListBox/ListView, TreeView и др. Сценарии шаблонов Линейные Иерархические
Microsoft TechDayshttp:// Ресурсы могут присутствовать на разных уровнях Элемент, Контейнер (Grid, StackPanel …), Главный визуальный контейнер (Окно, Страница), Приложение (App.xaml), Ресурсный словарь Упрощают повторное использование визуальных и программных ресурсов в декларативном представлении Стилей (Styles), Шаблонов элементов управления (Control Templates), шаблонов данных (Data Templates), кистей и пр.
Microsoft TechDayshttp:// Шаблоны данных и ресурсы Data Templates
Microsoft TechDayshttp:// Инвестируя время в декларативное представление вы выигрываете за счет привлечения дизайнера или самостоятельного использования Expression Элементы пользовательского интерфейса выходят за рамки жестких визуальных границ и становятся поведенческими моделями с произвольной визуализацией Легкость в создании вложенных элементов управления, приводит к меньшей необходимости создания User Controls – необходимость их создания диктуется теперь более поведенческой моделью, нежели визуальной
Microsoft TechDayshttp:// Usability или удобство пользователя при использовании WPF Производительность в WPF Лучшие практики использования возможностей WPF
Microsoft TechDayshttp:// WindowsClient.net Optimizing WPF Application Performance Performance Profiling Tools for WPF - детальная отладка производительности Windows Vista User Experience Guidelines Designing with Windows Presentation Foundation
Microsoft TechDayshttp:// Роман Здебский Эксперт по технологиям разработки ПО Microsoft