Первый опыт внедрения WPF в сложной системе (С++ и COM)

Содержание

Слайд 2

Цели доклада

рассказать о проблемах на начальных этапах внедрения WPF
сформулировать рекомендации повышения эффективности

Цели доклада рассказать о проблемах на начальных этапах внедрения WPF сформулировать рекомендации повышения эффективности разработки
разработки

Слайд 3

Карты

Гео-текстуры

Карты высот

Планы

Карты глубин

3D модели

Сцена

Задачи продукта

Вход

Выход

Редактор
сцены

Карты Гео-текстуры Карты высот Планы Карты глубин 3D модели Сцена Задачи продукта Вход Выход Редактор сцены

Слайд 4

Сцена

Сцена

Слайд 5

Основные части
Хранилище данных

Модули импорта

Логика

Модуль экспорта

Основные части Хранилище данных Модули импорта Логика Модуль экспорта

Слайд 6

Технологии

Логика – С++, COM
UI – MFC, ATL, WTL, C#(WF)
Движок редактора – С++,

Технологии Логика – С++, COM UI – MFC, ATL, WTL, C#(WF) Движок
MFC, GDI+
Модули импорта-экспорта – C++, COM
Визуализация – С++, COM, OpenGL
Прочие модули – С++, COM, ATL, WTL, C#

Слайд 7

Варианты развития

С++

.Net

WPF

Windows Forms

Прошлое

Будущее

Варианты развития С++ .Net WPF Windows Forms Прошлое Будущее

Слайд 8

Проблемы

Устаревший дизайн
Падение скорости разработки UI
Ограничения в расширяемости
Отставание в технологиях

Проблемы Устаревший дизайн Падение скорости разработки UI Ограничения в расширяемости Отставание в технологиях

Слайд 9

Ожидаемые плюсы

Переход на новейшие технологии
Программист пишет только код
Дизайном занимаются дизайнеры
Улучшение внешнего

Ожидаемые плюсы Переход на новейшие технологии Программист пишет только код Дизайном занимаются
вида
Сложные проблемно-ориентированные компонент UI
Ускорение разработки UI
Использование скинов

Слайд 10

Необходимое условие: поддержка использования .Net на уровне ядра системы

Необходимое условие: поддержка использования .Net на уровне ядра системы

Слайд 11

Причины отказа от COM

Много сопутствующего кода
Проблемы синхронизации Interop оберток
Потери быстродействия
Не везде поиск

Причины отказа от COM Много сопутствующего кода Проблемы синхронизации Interop оберток Потери
ошибок во время компиляции

Слайд 12

Тестирование на изолированной утилите

Тестирование на изолированной утилите

Слайд 13

Первые впечатления

Разработка интерфейса в стиле WF на WPF менее эффективна, чем на

Первые впечатления Разработка интерфейса в стиле WF на WPF менее эффективна, чем
WF
Легкости модификации системы при внесении изменений, нет и в помине
Дизайн окон вручную съедает неоправданно много времени

Слайд 14

Коррекция разработки

Использовать Binding совместно с моделью Data-Model-View
Expression Blend в качестве редактора дизайна

Коррекция разработки Использовать Binding совместно с моделью Data-Model-View Expression Blend в качестве
UI
Разделить обязанности между дизайнером и программистом
Увеличить количество разработчиков UI до двух человек.

Слайд 15

Результат коррекции: катастрофическое падение скорости разработки :[]

Результат коррекции: катастрофическое падение скорости разработки :[]

Слайд 16

Причины падения скорости

Требуется переосмысление архитектуры
Множество корректур дизайна
Замусоренный код от дизайнера
Формирование библиотеки стилей
Формирование

Причины падения скорости Требуется переосмысление архитектуры Множество корректур дизайна Замусоренный код от
базового функционала
Переход на векторную графику
Тонкости использования WPF
Недоработки библиотеке WPF

Слайд 17

Текущее положение вещей

Текущее положение вещей

Слайд 18

Практический опыт => экономия времени

Практический опыт => экономия времени

Слайд 19

Бюрократия => упорядочивание внесения изменений

Бюрократия => упорядочивание внесения изменений

Слайд 20

Баланс обязанностей => экономия времени

Баланс обязанностей => экономия времени

Слайд 21

Сформулированы пожелания заказчика => снижение потока изменений

Сформулированы пожелания заказчика => снижение потока изменений

Слайд 22

Баланс между переделкой и повторным использованием графических ресурсов => экономия времени

Баланс между переделкой и повторным использованием графических ресурсов => экономия времени

Слайд 23

Мы перешли на WPF :)

Мы перешли на WPF :)

Слайд 24

Оставшиеся проблемы

Наследие прошлого
Правильная интеграция 3D визуализации
Перевод всего приложения на WPF

Оставшиеся проблемы Наследие прошлого Правильная интеграция 3D визуализации Перевод всего приложения на WPF

Слайд 25

Ожидания и реальность

Ожидания и реальность

Слайд 26

Переход на новейшие технологии не до конца

Переход на новейшие технологии не до конца

Слайд 27

Разделение обязанностей дизайнера и программиста – в небольшом объеме

Разделение обязанностей дизайнера и программиста – в небольшом объеме

Слайд 28

Улучшение внешнего вида – однозначно да

Улучшение внешнего вида – однозначно да

Слайд 29

Повышение функциональности интерфейса – да, но с оговорками

Повышение функциональности интерфейса – да, но с оговорками

Слайд 30

Скины – автоматически (by design)

Скины – автоматически (by design)

Слайд 31

Итоговая скорость разработки

WTL < MFC < WPF< WF

Без учета затрат на дизайн:

Итоговая скорость разработки WTL Без учета затрат на дизайн: для окон средней
для окон средней сложности WPF= WF
для окон большой сложности WF < WPF

Слайд 32

Рекомендации

Рекомендации

Слайд 33

Внедрять WPF должны программисты .Net (квалификация)

Внедрять WPF должны программисты .Net (квалификация)

Слайд 34

Внедрять должны минимум два программиста (совещательность)

Внедрять должны минимум два программиста (совещательность)

Слайд 35

Для одного из программистов желателен опыт работы с WPF (центр кристаллизации знаний)

Для одного из программистов желателен опыт работы с WPF (центр кристаллизации знаний)

Слайд 36

Для дизайнера желателен опыт верстки HTML (подобие)

Для дизайнера желателен опыт верстки HTML (подобие)

Слайд 37

Структурируйте разработку UI с целью упорядочивания внесения изменений и понимания остальными происходящего

Структурируйте разработку UI с целью упорядочивания внесения изменений и понимания остальными происходящего (экономия времени и нервов)
(экономия времени и нервов)

Слайд 38

Начинайте разработку с простой задачи с акцентом на библиотеку стилей (задел в

Начинайте разработку с простой задачи с акцентом на библиотеку стилей (задел в ширину)
ширину)

Слайд 39

Продолжайте разработку с самой сложной, но локальной задачи (задел архитектуры)

Продолжайте разработку с самой сложной, но локальной задачи (задел архитектуры)

Слайд 40

Помните – архитектура главное, остальное по нескольку раз меняется (акцент)

Помните – архитектура главное, остальное по нескольку раз меняется (акцент)
Имя файла: Первый-опыт-внедрения-WPF-в-сложной-системе-(С++-и-COM).pptx
Количество просмотров: 94
Количество скачиваний: 0