2010-08-08 3 views
0


Основываясь на определении классического шаблона MVC, Controller отвечает за обработку пользовательских входов и взаимодействие с моделями, а также , определяющий, какой вид должен отображаться.MVC не реализуется в Winforms?

Wikipedia definition of MVC:
«Контроллер принимает входной сигнал и инициирует реакцию путем выполнения вызовов на модельных объектах. Контроллер принимает входные данные от пользователя и выдает команду модели и видовой экран для выполнения действий на основе этих входных данных.»

Согласно определению, невозможно ли реализовать MVC через .NET winforms? Поскольку это всегда представление, которое должно получить вход, хотя он может делегировать запрос Контроллеру впоследствии. В приложениях MVC winforms, которые я видел до сих пор, это то, что происходит, и контроллер NOT тот, который получает вход напрямую и определяет, какой вид будет отображаться.

Мне кажется, что все winforms MVC-реализации - это разные варианты MVP и NOT MVC.

(Я понимаю, тот факт, что ASP.NET MVC, прилипает к классическому определению MVC, как первый контроллер принимает входной сигнал через двигатель маршрутизации, а затем определяет, какой вид будет оказана и т.д ..)

Может кто-то уточняет? Спасибо.

+0

@ ig105: Я видел так много вещей, которые люди называют MVC, я не уверен, что буду так беспокоиться об этом. До тех пор, пока кто-то имеет общее представление о том, как инкапсулировать представление из конкретных прикладных кишок из низкоуровневых типов данных, я не уверен, что это имеет значение. Я лично считаю, что передняя линия обработки входных данных должна быть частью представления/презентации. В контроллере есть гораздо более интересные вещи, чем просто кнопки нажатия кнопок или щелчки мыши. На данный момент я привык к MVVM, хотя, возможно, я предвзятый. –

ответ

1

Это всегда представление, которое должно получать входные данные, хотя впоследствии он может делегировать запрос контроллеру. В WinForms MVC приложения, которые я видел до сих пор, это то, что происходит, и контроллер НЕ тот, который принимает входной сигнал непосредственно

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

Однако я бы рекомендовал использовать подход MVP. Относительно легко настроить и отлично подготовил для меня до сих пор.

Для получения дополнительной информации вы можете прочитать ответы на вопрос "How would you implement MVC in a WindowsForms application?".

0

Вы правильно картинка MVP применима к Winforms, и она отлично работает. У друга был проект с winforms, где он применил шаблон mvp.

Я не уверен, но я думаю, что MVC не может применяться к Winforms, и по этой причине я думаю, что люди обратились к различным вариациям MVP.