Правильная реализация MVP со сложным контролем - PullRequest
3 голосов
/ 20 января 2010

В настоящее время я реализую проект с использованием asp.net, c # и шаблона MVP (Model-View-Presenter). Основная цель этого решения - предоставить потребителю график, который будет использоваться различными системами. Это в основном пользовательский графовый сервер.

Страница просмотра в этом конкретном случае имеет элемент управления MSChart, который должен динамически заполняться и настраиваться на основе параметров в QueryString. Это может быть так же разнообразно, как и совершенно разные типы наборов данных, режимов отображения и т. Д., Используя множество свойств элемента управления диаграммы.

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

Я пытаюсь найти лучший способ показать свойства докладчику, чтобы он мог творить чудеса.

Должен ли я:

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

Мне кажется, что было бы против паттерна MVP выдвигать элемент управления отображением в презентатор, но кажется, что попытка сопоставить все свойства DTO или подобным было бы большой работой, которая добавила бы много сложности, и хотя решение будет несколько более слабым, я не уверен, что выигрыш в этом случае будет стоить.

Как бы вы реализовали что-то подобное, учитывая MVP?

Ответы [ 2 ]

3 голосов
/ 22 января 2010

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

http://mikewagg.blogspot.com/2009/01/managing-complexity-with-mvp-and.html

На самом деле, Мартин Фаулер тоже написал об этом:

http://martinfowler.com/eaaDev/PresentationModel.html

2 голосов
/ 20 января 2010

Выезд Automapper . Делает перевод из бизнес-объекта в модель представления практически без усилий. Общая идея заключается в том, что ваша модель представления должна иметь только примитивные типы систем, если это возможно, чтобы избежать форматирования / условий в вашем представлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...