Архитектура MVC или MVP для приложений winform, использующих Entity Framework в качестве ORM - PullRequest
4 голосов
/ 30 сентября 2011

Я собираюсь разработать проект winform значительного размера.Я планирую использовать Entity Framework в качестве инструмента ORM.Сейчас я ищу архитектуру (MVC / MVP / MVVM и т. Д.) Для реализации всего этого.Во-первых, существует несколько вариантов n-уровневой архитектуры для оконных форм, и большинство из них, которые я получаю, написаны до появления EF.Я получил фреймворк под названием Rocket Framework от codeplex (http://rocketframework.codeplex.com)

Я осмотрел его, но скептически отношусь к тому, что он будет соответствовать широкому кругу требований. Если кто-нибудь уже открыл колесо, пожалуйста,Проведите меня до конца. Также, если существующая архитектура, предшествующая EF4, может это вместить, я также могу попробовать. Идеи, пожалуйста!

Ответы [ 3 ]

6 голосов
/ 30 сентября 2011

Ну, на ваш выбор влияет технология, которую вы используете.Некоторые технологии делают определенный шаблон естественным для выполнения, и поэтому, если вы (и каждый разработчик) не будете явно проектировать и заботиться об этом, вы получите то, что кажется наиболее естественным.На WinForms наиболее естественным является шаблон MVP.У вас есть представление о том, что вы можете создать макет в конструкторе, а файл с выделенным кодом становится презентатором, по сути, объединяя представление и презентатор в одном классе (в любом случае это соотношение 1: 1).С другой стороны, для веб-приложений MVC является естественной схемой, поскольку ваш веб-сервер уже выступает в качестве контроллера.Наконец, MVVM очень хорошо поддерживается в WPF, хотя вы также можете пойти туда и к MVP, если начнете много использовать код, стоящий за файлом.Но вместо этого использование DataBinding может заставить вас забыть использовать код, стоящий за файлом.Хорошая статья, которую я прочитал об этом, здесь .Конечно, вы можете реализовать MVVM с WinForms, прочитайте эту ссылку для хорошего примера.

С точки зрения тестируемости MVVM воспринимается как лучший шаблон со времени вашей модели представления (и, следовательно, поведенияс вашей точки зрения) можно протестировать без реального графического интерфейса.MVP, однако, легко понять и реализовать, он не требует сложных привязок и дает вам максимальный контроль над происходящим (например, подавление событий).

5 голосов
/ 30 сентября 2011

Приложения WinForms в основном разрабатываются с использованием шаблона MVP.Оригинальный MVC используется не очень широко - только его вариант Model-2 (например, ASP.NET MVC) для веб-приложений.MVVM в основном используется с WPF и Silverlight.

Ни один из этих шаблонов не влияет на то, как вы используете Entity Framework - они не являются шаблонами, связанными с доступом к данным.

2 голосов
/ 04 октября 2011

После многих исследований и разработок я наконец-то остановился здесь: http://cgeers.com/2008/12/14/mvp-model-view-presenter/#comment-718 Это архитектура MVP, написанная Кристофом Гирсом. Он поддерживает все, что мне нужно - архитектура для winform, поддержка веб-переносимости, Entity Framework. Действительно красивый и простой в использовании.

Дополнительное чтение: http://www.cerquit.com/blogs/post/MVP-Part-I-e28093-Building-it-from-Scratch.aspx

...