Слайд 2Цели доклада
рассказать о проблемах на начальных этапах внедрения WPF
сформулировать рекомендации повышения эффективности
![Цели доклада рассказать о проблемах на начальных этапах внедрения WPF сформулировать рекомендации повышения эффективности разработки](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-1.jpg)
разработки
Слайд 3Карты
Гео-текстуры
Карты высот
Планы
Карты глубин
3D модели
Сцена
Задачи продукта
Вход
Выход
Редактор
сцены
![Карты Гео-текстуры Карты высот Планы Карты глубин 3D модели Сцена Задачи продукта Вход Выход Редактор сцены](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-2.jpg)
Слайд 5Основные части
Хранилище данных
Модули импорта
Логика
Модуль экспорта
![Основные части Хранилище данных Модули импорта Логика Модуль экспорта](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-4.jpg)
Слайд 6Технологии
Логика – С++, COM
UI – MFC, ATL, WTL, C#(WF)
Движок редактора – С++,
![Технологии Логика – С++, COM UI – MFC, ATL, WTL, C#(WF) Движок](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-5.jpg)
MFC, GDI+
Модули импорта-экспорта – C++, COM
Визуализация – С++, COM, OpenGL
Прочие модули – С++, COM, ATL, WTL, C#
Слайд 7Варианты развития
С++
.Net
WPF
Windows Forms
Прошлое
Будущее
![Варианты развития С++ .Net WPF Windows Forms Прошлое Будущее](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-6.jpg)
Слайд 8Проблемы
Устаревший дизайн
Падение скорости разработки UI
Ограничения в расширяемости
Отставание в технологиях
![Проблемы Устаревший дизайн Падение скорости разработки UI Ограничения в расширяемости Отставание в технологиях](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-7.jpg)
Слайд 9Ожидаемые плюсы
Переход на новейшие технологии
Программист пишет только код
Дизайном занимаются дизайнеры
Улучшение внешнего
![Ожидаемые плюсы Переход на новейшие технологии Программист пишет только код Дизайном занимаются](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-8.jpg)
вида
Сложные проблемно-ориентированные компонент UI
Ускорение разработки UI
Использование скинов
Слайд 10Необходимое условие:
поддержка использования .Net на уровне ядра системы
![Необходимое условие: поддержка использования .Net на уровне ядра системы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-9.jpg)
Слайд 11Причины отказа от COM
Много сопутствующего кода
Проблемы синхронизации Interop оберток
Потери быстродействия
Не везде поиск
![Причины отказа от COM Много сопутствующего кода Проблемы синхронизации Interop оберток Потери](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-10.jpg)
ошибок во время компиляции
Слайд 12Тестирование на изолированной утилите
![Тестирование на изолированной утилите](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-11.jpg)
Слайд 13Первые впечатления
Разработка интерфейса в стиле WF на WPF менее эффективна, чем на
![Первые впечатления Разработка интерфейса в стиле WF на WPF менее эффективна, чем](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-12.jpg)
WF
Легкости модификации системы при внесении изменений, нет и в помине
Дизайн окон вручную съедает неоправданно много времени
Слайд 14Коррекция разработки
Использовать Binding совместно с моделью Data-Model-View
Expression Blend в качестве редактора дизайна
![Коррекция разработки Использовать Binding совместно с моделью Data-Model-View Expression Blend в качестве](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-13.jpg)
UI
Разделить обязанности между дизайнером и программистом
Увеличить количество разработчиков UI до двух человек.
Слайд 15Результат коррекции:
катастрофическое падение скорости разработки :[]
![Результат коррекции: катастрофическое падение скорости разработки :[]](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-14.jpg)
Слайд 16Причины падения скорости
Требуется переосмысление архитектуры
Множество корректур дизайна
Замусоренный код от дизайнера
Формирование библиотеки стилей
Формирование
![Причины падения скорости Требуется переосмысление архитектуры Множество корректур дизайна Замусоренный код от](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-15.jpg)
базового функционала
Переход на векторную графику
Тонкости использования WPF
Недоработки библиотеке WPF
Слайд 18Практический опыт
=> экономия времени
![Практический опыт => экономия времени](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-17.jpg)
Слайд 19Бюрократия
=> упорядочивание внесения изменений
![Бюрократия => упорядочивание внесения изменений](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-18.jpg)
Слайд 20Баланс обязанностей
=> экономия времени
![Баланс обязанностей => экономия времени](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-19.jpg)
Слайд 21Сформулированы пожелания заказчика
=> снижение потока изменений
![Сформулированы пожелания заказчика => снижение потока изменений](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-20.jpg)
Слайд 22Баланс между переделкой и повторным использованием графических ресурсов
=> экономия времени
![Баланс между переделкой и повторным использованием графических ресурсов => экономия времени](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-21.jpg)
Слайд 24Оставшиеся проблемы
Наследие прошлого
Правильная интеграция 3D визуализации
Перевод всего приложения на WPF
![Оставшиеся проблемы Наследие прошлого Правильная интеграция 3D визуализации Перевод всего приложения на WPF](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-23.jpg)
Слайд 26Переход на новейшие технологии не до конца
![Переход на новейшие технологии не до конца](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-25.jpg)
Слайд 27Разделение обязанностей дизайнера и программиста –
в небольшом объеме
![Разделение обязанностей дизайнера и программиста – в небольшом объеме](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-26.jpg)
Слайд 28Улучшение внешнего вида – однозначно да
![Улучшение внешнего вида – однозначно да](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-27.jpg)
Слайд 29Повышение функциональности интерфейса –
да, но с оговорками
![Повышение функциональности интерфейса – да, но с оговорками](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-28.jpg)
Слайд 30Скины –
автоматически (by design)
![Скины – автоматически (by design)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-29.jpg)
Слайд 31Итоговая скорость разработки
WTL < MFC < WPF< WF
Без учета затрат на дизайн:
![Итоговая скорость разработки WTL Без учета затрат на дизайн: для окон средней](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-30.jpg)
для окон средней сложности WPF= WF
для окон большой сложности WF < WPF
Слайд 33Внедрять WPF должны программисты .Net (квалификация)
![Внедрять WPF должны программисты .Net (квалификация)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-32.jpg)
Слайд 34Внедрять должны минимум два программиста (совещательность)
![Внедрять должны минимум два программиста (совещательность)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-33.jpg)
Слайд 35Для одного из программистов желателен опыт работы с WPF (центр кристаллизации знаний)
![Для одного из программистов желателен опыт работы с WPF (центр кристаллизации знаний)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-34.jpg)
Слайд 36Для дизайнера желателен опыт верстки HTML (подобие)
![Для дизайнера желателен опыт верстки HTML (подобие)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-35.jpg)
Слайд 37Структурируйте разработку UI с целью упорядочивания внесения изменений и понимания остальными происходящего
![Структурируйте разработку UI с целью упорядочивания внесения изменений и понимания остальными происходящего (экономия времени и нервов)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-36.jpg)
(экономия времени и нервов)
Слайд 38Начинайте разработку с простой задачи с акцентом на библиотеку стилей (задел в
![Начинайте разработку с простой задачи с акцентом на библиотеку стилей (задел в ширину)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-37.jpg)
ширину)
Слайд 39Продолжайте разработку с самой сложной, но локальной задачи (задел архитектуры)
![Продолжайте разработку с самой сложной, но локальной задачи (задел архитектуры)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-38.jpg)
Слайд 40Помните – архитектура главное, остальное по нескольку раз меняется (акцент)
![Помните – архитектура главное, остальное по нескольку раз меняется (акцент)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/396877/slide-39.jpg)