Ну, на самом деле Windows Forms реализует версию MVC в «свободном стиле», так же, как некоторые фильмы реализуют какую-то дурацкую интерпретацию «свободного стиля» некоторых классических книг (вспоминаются Ромео и Джульетта).
Я не говорю, что реализация Windows Forms плохая, просто ... другая.
Если вы используете Windows Forms и надлежащие методы ООП и, возможно, ORM, такие как EntitySpaces, для доступа к базе данных, вы можете сказать, что:
- Инфраструктура ORM / OOP - это Модель
- Формы - это представления
- Обработчиками событий являются контроллеры
Хотя представление и контроллер, представленные одним и тем же объектом, затрудняют разделение кода и представления (нет простого способа добавить «GTK + представление» в класс, производный от Microsoft.Windows.Forms.Form).
Что вы можете сделать, если вы достаточно осторожны. Держите код формы полностью отдельно от кода контроллера / модели, только записывая связанные с графическим интерфейсом вещи в обработчиках событий и всю другую бизнес-логику в отдельном классе. В этом случае, если вы когда-нибудь захотите использовать GTK + для написания другого слоя View, вам нужно будет только переписать код GUI.