1 / 41

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

Первый опыт внедрения WPF в сложной системе (С++ и COM). Михаил Павлов Transas. Цели доклада. рассказать о проблемах на начальных этапах внедрения WPF сформулировать рекомендации повышения эффективности разработки. Задачи продукта. Вход. Выход. Карты. Гео-текстуры. Редактор сцены.

osias
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Первый опыт внедрения WPF в сложной системе (С++ и COM) Михаил Павлов Transas

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

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

  4. Сцена

  5. Основные части Инструменты редактирования Диалоговые окна UI Движок редактора Редактирование свойств Редактирование геометрии Логика Модули импорта Модуль экспорта Хранилище данных

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  41. Спасибо за внимание • Михаил Павлов • Transas • pavmb2001@mail.ru

More Related