Особенности реализации MVP для Windows Forms

Доброго времени суток! Model-View-Presenter — довольно известный шаблон проектирования. С первого взгляда все выглядит просто: есть Модель (Model), которая содержит всю бизнес-логику экрана; Вид/Представление (View), который знает, как отобразить те или иные данные; Представитель (Presenter), который является связующий звеном — реагирует на действия пользователя во View, изменяя Model, и наоборот. Сложность начинается, когда количество форм в проекте становится более одной.В данной статье рассматривается:  — немножко теории;  — общие проблемы реализации MVP (а именно Passive View) под Windows Forms;  — особенности реализации переходов между формами и передача параметров, модальные окна;  — использование IoC-контейнера и шаблона Dependency Injection — DI (а именно Сonstructor Injection);  — некоторые особенности тестирования MVP приложения (с использованием NUnit и NSubstitute);  — все это будет происходить на примере мини-проекта и постарается быть наглядным.В статье затрагивается:  — применение шаблона Адаптер (Adapter);  — простенькая реализация шаблона Контроллер приложения (Application Controller).Для кого эта статья? Главным образом для начинающих разработчиков на Windows Forms, которые слышали, но не пробовали, или пробовали, но не получилось. Хотя уверен, что некоторые приемы применимы и для WPF, и даже для веб-разработки.Читать дальше →

© Habrahabr.ru