вторник, 18 марта 2014 г.

Практика применения шаблона MVP-VM (Winforms)

Потеря контроля над уровнем сложности проекта страшный сон любого разработчика, но как правило такие сны становятся явью в условиях глухоты и полного игнорирования простых принципов архитектурного дизайна, таких как разделение ответственности (Separation of Concerns, SoC) и слабая связанность (Loose coupling).

Проектирование и разработка в монолитном стиле приводит к приложению, которое очень трудно, дорого и неэффективно поддерживать. Слово "монолитное", указывает на приложение, в котором компоненты тесно связаны, и между ними нет четкого разделения. Приложения, спроектированные таким способом обладают качественной характеристикой «Трудно»: трудно добавлять новые функции, трудно заменять существующие, трудно исправлять ошибки, не затрагивая другие части системы, трудно работать параллельно и пр.

Сегодня существует немало практик построения хорошего дизайна различных архетипов приложений, которые рекомендуют, при построении уровня представления  (Presentation Layer)  применять ряд шаблонов, разделяющих: взаимодействие пользователя с UI, представление (View), бизнес-логику и данные приложения, с которыми работает пользователь. В настоящее время наиболее популярными являются MVC, MVP, MVVM и MVP-VM.

Хочу изложить свою практику применения шаблона MVP-VM на примере демо-решения  Windows Form приложения, интерфейса управления заказами.