2011-01-24 2 views
1

Я собираюсь реорганизовать мой код Winforms в шаблон MVC. Я никогда раньше не использовал этот шаблон.C# MVC Справка по шаблону

Очевидно, что графическим интерфейсом будет представление, контроллер будет «средним уровнем», который вызывается любым пользовательским взаимодействием с графическим интерфейсом, а модель выполняет заданные задачи и информирует мнение о любых изменениях состояния.

Мой вопрос в том, что с моделью я предполагаю, что может охватывать большое количество классов и не ограничивается одним классом «модель»? Кроме того, могут ли эти три секции быть в одной и той же сборке?

Спасибо.

+3

Почему MVC для Winforms - почему бы не MVVM? – stack72

+0

Я никогда не слышал об этом. Я посмотрю сейчас ... у тебя есть хорошие ссылки? Благодарю. –

ответ

3

для Winforms я Wouldnt предложить MVC - ID предложить MVVM

попробовать этот учебник http://weblogs.asp.net/dwahlin/archive/2010/09/30/silverlight-sessions-coming-to-devconnections-las-vegas-november-1-4.aspx

эта статья упоминает Silverlight но шаблон MVVM является универсальным и может быть применен к Winforms

как указал Roger Lipscombe - MVP также может работать - попробуйте это для получения информации об этом http://davybrion.com/blog/2010/08/mvp-in-silverlightwpf-architectural-overview/ - опять-таки, характерном для Silverlight в этом свете, но в качестве шаблона его можно настроить

+0

В Winforms я нахожу, что больше Model-View-Presenter (MVP), потому что привязка данных не так хороша, как WPF или Silverlight. Думаю, это просто семантика. –

+0

100% правильный - плохо обновить мой ответ для MVP, а также - спасибо за напоминание. Я не считаю, что MVC обычно работает для winforms, хотя – stack72

+0

Спасибо, проверит это. Вы только что нашли эту ссылку Мартина Фаулера, которая выглядит как действительно хорошая читать ..... http: //martinfowler.com/eaaDev/uiArchs.html –

0

Нет, mo del не ограничивается одним классом модели. В модели вы обычно представляете свою базу данных и другие материалы, связанные с данными. Контролеры несут ответственность за большинство действий.

И да, весь этот компонент приземлится в одной dll. Ставка там будет много других файлов, таких как файлы просмотра, которые не всегда скомпилированы в MVC (но вы можете заставить это).

2

Для Winforms я хотел бы предложить обучение о MVP (Model/View/Presenter) и MVC шаблон. Хотя другие предположили, что MVVM может быть хорошей идеей, я не согласен - MVVM использует преимущества привязки данных, предлагаемые в WPF, и хотя Winforms в какой-то степени поддерживает привязку, она не является такой же ориентированной, как архитектура/объектная модель WPF.

Уровень «Модель» может состоять из многих классов, и при моделировании классов в этом слое вашей архитектуры я всегда буду использовать «принцип единой ответственности», а также другие принципы Solid.

Полезные ссылки:

0

Вы можете думать о том, CLASS A 'модель' в качестве интерфейса , Затем все ваши конкретные модели реализуют этот интерфейс, но имеют общие методы (например, обновление, удаление и т. Д.).

Они могут быть записаны в одной сборке. Структура вашей папки (строго) должна следовать структуре моделей/представлений/контроллеров и размещать файлы кода под ними соответственно.

0

Если вы решите попробовать шаблон MVP, который является хорошим выбором для Winforms, ознакомьтесь с MVC#, основой для создания приложений MVP. Это просто и хорошо.

0

Возможно, вас интересует подход, к которому я направляюсь, чтобы комбинировать шаблон MVC/MVP с привязкой данных с плавными интерфейсами. mvc and databinding, what is the best approach?

Если MVC, MVP или MVVM используются с моей точки зрения, вопрос перспективы. Все они приведут к абстракции данных, логике и визуализации данных.

Смежные вопросы