Где я могу найти хороший пример того, как полностью реализовать шаблон MVC в Windows Forms?
Я нашел много руководств и примеров кода на различных сайтах (например, The Code Project и .NetHeaven), но многие из них более репрезентативны для шаблона наблюдателя, чем MVC. Поскольку приложение, которое я хочу разработать, предназначено для школьного проекта, я не хочу использовать такие фреймворки, как PureMVC или MVC # .
Ответы:
Я считаю, что приложения сильно отличаются друг от друга, и наше понимание того, как следует писать приложения, все еще очень ограничено. Предыдущие приложения Windows Forms, над которыми я работал, сильно отличались друг от друга. Вот некоторые из замеченных мною конструктивных отличий (включая большинство комбинаций):
Поэтому я не думаю, что можно создать одну реализацию MVC (или MVP), которая всегда хорошо подходит.
Лучшие сообщения, которые я видел, действительно объясняли MVC и почему система MVC построена именно так, - это серия Джереми Миллера «Создайте свой собственный CAB» . Поработав над этим, вы сможете лучше понять свои варианты. Также следует учитывать руководство Microsoft Smart Client (CAB / Microsoft Composite Application Block) . Это немного сложно, но может хорошо работать для подходящих приложений.
Выбор реализации MVC / MVP для проекта Winforms дает обзор, который стоит прочитать. Многим нравится PureMVC . Я никогда не использовал его, но я посмотрю на него в следующий раз, когда мне понадобится среда MVC.
« Presenter Первый » является подход к разработке программного обеспечения , которое сочетает в себе идеи Model View Presenter (MVP) шаблон проектирования и разработки через тестирование . Это позволяет вам начать с написания тестов на языке заказчика. Например:
У меня нет опыта использования «Presenter First», но я попробую, когда у меня будет возможность, так как это выглядит очень многообещающим.
Другие вопросы о переполнении стека, которые вы, возможно, захотите посмотреть, находятся здесь и здесь .
Если вы думаете об использовании WPF в любой момент, обратите внимание на шаблон Model-View ViewModel (MVVM) . Вот очень хорошее видео, на которое вам стоит взглянуть: Джейсон Долинджер о Model-View-ViewModel .
Шаблон проектирования MVVM (Model View View Model) для Winforms дает еще один вариант, который может облегчить преобразование в WPF, если когда-либо понадобится. Magical.Trevor - еще один пример MVVM для Windows Forms, который также включает автоматическую привязку на основе имен свойств.
Также спросите себя, почему вы используете MVC.
Как только вы определитесь со своими целями , вам будет легче выбрать ту или иную реализацию.
источник
ОБНОВЛЕНИЕ: в дополнение к моему предыдущему ответу ниже я предлагаю прочитать о подходе «Сначала докладчик» (особенно статьи в формате PDF)
Я бы рекомендовал MVP (на самом деле шаблон PassiveView) вместо MVC. Для этого вам действительно не нужны какие-то специальные фреймворки, просто вы организуете свой код.
Один из подходов (который я обычно использую) - разделить каждую форму окна на три объекта:
Пример кода (простой псевдокод, просто для иллюстрации):
источник
Вы смотрели PureMVC ? Я обнаружил, что никто не может прийти к единому мнению о том, как на самом деле выглядит MVC, когда они начинают создавать конкретную реализацию.
Обновление: вы можете создать свой собственный, начав с чего-то более простого, например, MobileMVC . Код Compact Framework должен компилироваться / запускаться нормально в Windows. Поскольку это школьное задание, я бы посоветовал вам потратить некоторое время на изучение того, как на самом деле работает MVC.
источник
Возможно, вы захотите взглянуть на Differential Execution .
Вот это в SourceForge
IMO, это значительное улучшение MVC, хотя это все еще довольно необычно.
источник
Хороший пример при прокатке собственной реализации MVC с помощью Windows Forms можно найти здесь . Исходный код прилагается.
По мере чтения, изучения и написания кода для этого задания вы обнаружите, что существует множество разногласий по поводу того, как следует реализовать MVC. Это простой случай, отражающий разделение проблем, а также хороший пример «сантехники», необходимой для этого.
Когда вы не ходите в школу, вы, вероятно, захотите использовать рамки, как рекомендуют другие плакаты.
источник
Блок Microsoft Composite Interface Application начал свою жизнь как реализация MVC (среди других реализованных шаблонов). Тем не менее, релизная версия превратилась в реализацию MVP, которую можно утверждать как разновидность другой интерпретации концепции MVC.
Если вы хотите проверить код очень полной (и в некоторой степени сложной) реализации MVP, вы можете найти MS-CAB как один из компонентов Microsoft Smart Client Software Factory. Поставляется с исходным кодом. Вы можете найти это здесь . Удачи!
источник