43

Как создать богатый пользовательский интерфейс Приложение Windows, например, Photo Shop.Ищете чистый учебник WinForms MVC для C#

Я ищу чистую учебную программу MVC для WinForms с C# где-то. (не ASP.NET MVC.)

Будучи новым на платформе Windows; большинство учебных материалов MSDN и интернет-приложений в основном помещают все в класс Form. Дальнейшие события по умолчанию обрабатываются внутри формы, вместо отправки событий в элемент управления/модели, который в свою очередь изменяет состояние представления.

Или является предпочтительной методологией для приложений Windows для чего-то еще?

+4

Дело в том, что WinForms, может быть, это не самый лучший инструментарий для MVC, учитывая, что в Windows Forms, контроллер, вид и модель на самом деле не разделены. Я думаю, что у вас будет больше удачи в WPF, который в этом смысле более гибкий. –

+3

Возможно, вы захотите взглянуть сюда, прежде чем птица буу выйдет. http://stackoverflow.com/questions/2406/looking-for-a-mvc-sample-for-winforms –

+1

Можно ли повторно активировать вопрос? Мы сейчас в 2012 году, и я также ищу хороший и простой пример Winform MVC. –

ответ

2

Возможно, стоит посмотреть на Model-View-ViewModel (если вам интересно или с удовольствием использовать WPF в частности).

Он специально настроен для работы с WPF и Silverlight и использует привязку данных для склеивания всего вместе.

Там есть много ресурсов в Интернете для выяснения более, в том числе Джона Госсмана-х introduction, и хорошая article Джош Смит, который имеет другие ресурсы на его blog, связанный с MVVM.

+1

Статья Джоша Смита действительно хорошая – s5804

-1

Для приложений Windows ОС Windows непреднамеренно становится частью Контроллера.

Модель может подписаться на различные события/сообщения (например, щелчок мышью, перемещение, изменение размера окна, нажатие кнопки ...). Когда он выполнил свою обработку обновления-обновления, представление обновляется с помощью операций перерисовки.

ОС Windows работает как контроллер здесь, потому что он как отправляет сообщения модели (например, щелчок мыши), так и в представление (сообщая, что часть окон грязная и требует перерисовки).

Конечно, для любого коммерческого приложения вы должны реализовать собственную структуру модели и документа и отделить их от соответствующих объектов WinForm.

В .net это не так ясно, потому что есть только один файл как для модели, так и для просмотра. В MFC это было очень ясно - с классом CDocument и соответствующим классом CView.

Вместо шаблона MVC для приложений Windows это помогает понять архитектуру обмена сообщениями Windows и способы ее обработки.

+0

Вы предполагаете, что в большинстве случаев Winforms достаточно. При условии, что обмен сообщениями выполняется правильно? – s5804

+0

Да. Однако подумайте, есть ли у вас случаи, требующие обновления нескольких форм и т. Д. В этом случае, возможно, имеет смысл разделить модель на другой класс и может также реализовать контроллер, а также для координации между классом модели и объектами формы. – Sesh

+0

Я не согласен с утверждением: «Для Windows-приложений ОС Windows непреднамеренно становится частью контроллера». Вы все равно можете использовать шаблоны, даже если WinForms не задает определенный шаблон (MVC/MVP/MVVM/и т. Д.). Посмотрите на ссылки с balioune_ba и Refactored Paladin для шаблонов и фреймворков. При этом MVC не может быть лучшим образцом для WinForms, и WPF предлагает более естественный способ реализации шаблонов MV *. – Ryan