Как перейти от шаблона MVP к шаблону SCSF CAB? - PullRequest
1 голос
/ 06 мая 2011

Я спроектировал и разработал свое приложение в MVP Pattern.Я не использовал никакой фабрики программного обеспечения, чтобы достигнуть этого.Теперь я хочу перейти к шаблону SCSF и структуре CAB.

Мне нужно знать, можно ли это сделать более простым способом, поскольку структура CAB реализует только MVP.

Ответы [ 2 ]

1 голос
/ 18 августа 2011

Я бы согласился с Вали.у вас есть готовые взгляды.Предполагая, что они в идеальном MVP.теперь вам нужно классифицировать их по модулям.Мы создали дочерние рабочие элементы, чтобы при запуске варианта использования это был новый экземпляр дочернего рабочего элемента, добавляемый в коллекцию рабочих элементов модуля.Поэтому, когда сценарий использования завершен, мы просто прекратили дочерний рабочий элемент.Если произойдет какое-либо исключение, то на рабочий элемент модуля теперь будет воздействовать дочерний элемент.SCSF имеет функцию, где вы можете составить несколько видов на экране.Так что вам нужно посмотреть, можете ли вы использовать ZoneWorkspace, чтобы избежать дублирования пользовательского интерфейса и логики.Решите, как модули будут взаимодействовать, скажем, события или команды.Как данные будут передаваться между представлениями и модулями.Теперь у вас есть оболочка, вам нужно решить, какие области вы будете иметь в оболочке.Что приходит по умолчанию на оболочку.Как модули слушают Shell.Какие события Shell слушает из модулей, чтобы настроить себя.

SCSF имеет внедрение зависимости.Так что решите, какие сервисы пользовательского интерфейса вы будете иметь.Внедрите их в Presenter соответственно.

0 голосов
/ 30 мая 2011

В CAB и SCSF есть готовые к кодированию классы MVP (и интерфейсы).Так что, если вы реализовали это чисто, то вы можете просто скопировать ваши методы, как только вы освоите классы.

Попробуем проинформировать его: -

1) IView - Этоссылка на View, которая предоставляет только те установленные свойства / методы, к которым может обращаться Presenter (или любой другой класс)

2) View - имеет ссылку на Presenter и может получить доступ ко всем открытым / защищенным методамведущий.По своей конструкции он не может получить доступ к какой-либо службе, поскольку вам потребуется WorkItem (контейнер служб, состояние, команда, события и т. Д.).Для всех практических целей View предназначен только для управления элементами управления пользовательского интерфейса, привязкой, состоянием объекта и т. Д.

3) Presenter - имеет ссылку на WorkItem (через который вы можете получить доступ ко всем службам).Ответственность докладчика заключается в том, что он манипулирует данными с помощью Сервисов.

4) WorkItemController - WorkItemController может использовать функции, связанные с UseCase, как при подключении / отключении элементов управления пользовательского интерфейса, позиционировании вида и т. Д.

Егобольше, чем просто MVP в SCSF / CAB как общий дизайн приложения пользовательского интерфейса.Который имеет следующее: -

  1. Модульная структура
  2. Архитектура по требованию.
  3. Шаблон службы
  4. Команды
  5. СобытиеОбработчики и т. Д.

Итак, сначала вы должны проверить codeplex docs , чтобы увидеть, будет ли ваш проект легко модернизироваться на этой платформе / архитектуре.Я бы порекомендовал CAB / SCSF, если вы только начали и планируете сделать проект масштабируемым и на уровне предприятия.

...