Контроллер / Static State Class в приложении WinForms - где поставить? - PullRequest
3 голосов
/ 13 сентября 2009

Я пишу приложение WinForms и хочу иметь дизайн типа MVC. На самом деле это больше MVP или MVVM,

План состоит в том, чтобы иметь Центральный контроллер, который выполняет всю фактическую работу, чтобы формы просто отображали ViewModels и обрабатывали пользовательский ввод, но все, что на самом деле что-то делает, проходит через контроллер.

Мне просто интересно, если это хорошая идея, и где поставить контроллер? В настоящее время идея состоит в том, чтобы иметь статический класс, который инициализируется в Program.cs (отправка в некоторых зависимостях, таких как IMyDatabaseRepository), чтобы он оставался контроллером, который делегирует работу между пользовательским интерфейсом и моделью.

Как вы можете догадаться, я из Веб-фона и имею небольшой опыт работы с архитектурой WinForms. Ранее моей MainForm был класс Controller, содержащий все переменные состояния, что, очевидно, означает, что моя MainForm - это мое приложение, а не просто часть пользовательского интерфейса.

Ответы [ 3 ]

2 голосов
/ 13 сентября 2009

Хороший вопрос, Майкл!

Вот несколько ссылок:

Надеюсь, это поможет вам правильно структурировать ваш проект!

0 голосов
/ 20 сентября 2010

Возможно, вы скачали WAF Windows Forms Adapter файл для загрузки. Он поставляется с примером приложения BookLibrary, в котором используется Controller / MVVM design вместе с Windows Forms.

0 голосов
/ 14 сентября 2009

Я не знаю, является ли это лучшим способом, но у меня есть Structuremap, создающий мой контроллер и экземпляр базы данных.
Основная форма не содержит реального кода - она ​​просто загружает первый набор элементов управления, а затем запускает контроллер. Пользовательские элементы управления в форме используют StructureMap для доступа к контроллеру.
Мой проект - это обычные WinForms, а не WPF, и я впервые использую шаблон MVC с WinForms.

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