41911

WPF приложение с многооконным (MDI) интерфейсом

Лабораторная работа

Информатика, кибернетика и программирование

Часть 1 Необходимо перенести интерфейс редактирования свойств объектов коллекции в отдельное окно. Главное окно приложения должно содержать грид со списком объектов функции открытия сохранения файла коллекции функции удаления объектов из коллекции и вызова окон для редактирования объекта или создания объекта в отдельном окне. При выборе пользователем команды редактирования выделенного объекта в гриде должно появиться отдельное окно для редактирования свойств этого объекта. Должна быть возможность открывать одновременно несколько окон для...

Русский

2013-10-26

19.15 KB

105 чел.

Лабораторная №6. WPF приложение с многооконным (MDI) интерфейсом

Длительность: 8 часов.

Теоретическая часть

Топики для изучения:

  1. Шаблоны обращение контроля (Inversion of Control) и внедрение зависимости (Dependency Injection)
  2. Шаблон «Фабрика» (Factory)

Практическая часть

Используя среду разработки MS Visual Studio 2010 необходимо модифицировать проект, созданный на 5-й л/р, следующим образом.

Часть 1

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

При выборе пользователем команды редактирования выделенного объекта в гриде, должно появиться отдельное окно для редактирования свойств этого объекта. Окно должно быть немодальным, то есть, должна быть возможность переключаться между этим окном и главным окном приложения. Должна быть возможность открывать одновременно несколько окон для редактирования. При попытке редактирования объекта, окно с которым уже открыто, новое окно редактирования не должно создаваться, должно активизироваться уже ранее открытое окно.

При удалении объекта из коллекции ранее открытое окно редактирования этого объекта должно закрываться.

При выборе пользователем команды создания нового объекта, должно появляться окно для редактирования свойств нового объекта. Окно должно отображаться в модальном режиме, то есть, не давать пользователю переключаться на другие окна приложения, пока модальное окно не закрыто. Окно создания нового объекта отличается от окна редактирования наличием кнопок «ОК» и «Отмена», которые, соответственно, подтверждают добавление нового объекта в коллекцию, либо отменяют это действие.

Часть 2

При написании автоматических тестов важно понимать, что автоматическое тестирование графического интерфейса – задача весьма сложная. Поэтому в шаблоне MVVM уровень представления (View) отделён от уровня ViewModel, что позволяет тестировать поведение приложения на уровне ViewModel, не создавая в тестах реальные объекты окон и графических элементов. Если же такое разделение не соблюдается, то тестировать приходится приложение целиком, и, как правило, вручную (что гораздо менее эффективно).

Автоматический тест с использованием поддельной фабрики, создающей диалоговые ViewModel, приведён в примере (см. модуль MainViewModelTest).

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

Бонусное задание за дополнительные баллы:

Написать автоматический тест, который проверит, что при вызове команды удаления объекта, для которого открыта форма для редактирования, эта форма будет закрыта.

Примечание: В практике программирования широкое применение имеют DI-фреймворки (например, Unity, Spring) и фреймворки для написания заглушек к тестовому коду (например, Moq, RhinoMock и др.) Использование этих инструментов очень сильно облегчает написание автоматических (как  модульных, так и интеграционных) тестов.

Требования к коду

При написании кода приложения необходимо придерживаться шаблона MVVM. В частности, не должно быть прямой зависимости классов ViewModel от слоя представления. Динамическое создание пары View-ViewModel лучше выделить в отдельный класс-фабрику (как в примере).

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


 

А также другие работы, которые могут Вас заинтересовать

18600. Аппаратура рабочих мест в автоматизированных системах проектирования и управления 34 KB
  Аппаратура рабочих мест в автоматизированных системах проектирования и управления Вычислительные системы в САПР В качестве средств обработки данных в современных САПР широко используют рабочие станции серверы персональные компьютеры. Применение больших ЭВМ и в т
18601. Периферийные устройства 29 KB
  Периферийные устройства Для ввода графической информации с имеющихся документов в САПР используют дигитайзеры и сканеры. Дигитайзер применяют для ручного ввода. Он имеет вид кульмана по его электронной доске перемещается курсор на котором расположены визир и кноп
18602. Особенности технических средств в АСУТП 27.5 KB
  Особенности технических средств в АСУТП Специфические требования предъявляют к вычислительной аппаратуре работающей в составе АСУТП в цеховых условиях. Здесь используют как обычные персональные компьютеры так и специализированные программируемые логические контр...
18603. Методы доступа в локальных вычислительных сетях 31 KB
  Методы доступа в локальных вычислительных сетях Множественный доступ с контролем несущей и обнаружением конфликтов Одна из возможных сред передачи данных в ЛВС отрезок сегмент питой пары. К нему через аппаратуру окончания канала данных подключаются узлы компью
18604. Локальные вычислительные сети Ethernet 28.5 KB
  Локальные вычислительные сети Ethernet Состав аппаратуры Одной из первых среди ЛВС шинной структуры была создана сеть Ethernet разработанная фирмой Xerox. В этой сети был применен метод доступа МДКН/ОК. Позднее Ethernet стала основой стандарта IEEE 802/3. Другой вариант шинных ЛВС соот
18605. Каналы передачи данных в корпоративных сетях 41 KB
  Каналы передачи данных в корпоративных сетях Характеристики и типы каналов передачи данных Применяемые в вычислительных сетях каналы передачи данных классифицируются по ряду признаков. Вопервых по форме представления информации в виде электрических сигналов кан
18606. История САПР 26.3 KB
  История САПР Система автоматизированного проектирования САПР в англоязычном написании CAD System Computer Aided Design System это система реализующая проектирование при котором все проектные решения или их часть получают путем взаимодействия человека и ЭВМ. В настоящий момент с...
18607. ИЕРАРХИЧЕСКАЯ СТРУКТУРА ПРОЕКТНЫХ УРОВНЕЙ ПРОЕКТИРОВАНИЯ 33.5 KB
  ИЕРАРХИЧЕСКАЯ СТРУКТУРА ПРОЕКТНЫХ УРОВНЕЙ ПРОЕКТИРОВАНИЯ Выполнение проектных операций и процедур в САПР основано на оперировании математических моделей ММ. С их помощью прогнозируются характеристики и оцениваются возможности предложенных вариантов схем и констр...
18608. Требования к математическим моделям и их классификация 48 KB
  Требования к математическим моделям и их классификация Под математической моделью ММ конструкции технологического процесса и его элементов понимают систему математических соотношений описывающих с требуемой точностью изучаемый объект и его поведение в производст...