Разработка приложения

В настоящее время меня беспокоит, что дизайн моего приложения какой-то неуклюжий, поэтому я хотел спросить вас, как вы разрабатываете свои приложения.

Я использую C# и WinForms (к сожалению, сейчас нет времени заниматься WPF)

Поэтому я использую ProgramContext, чтобы иметь несколько форм в одном приложении и управлять ими. Но вопрос в том, куда мне поместить логику Программы?

Видите ли, я пришел из веб-фона, так что легко сказать: PHP делает логику, HTML отображает.

Но как там с приложениями. Выполняет ли ProgramContext логику (контроллер), а WinForm отображает ее (представление) — или сам ProgramContext является представлением, которое может управлять другими представлениями, а логика помещается в Program.cs?

Я очень запутался в этом вопросе и надеюсь, что кто-то может мне помочь.


person F.P    schedule 26.07.2010    source источник


Ответы (1)


Я бы порекомендовал вам ознакомиться с шаблоном Мартина Фаулера «MVP Supervising Controller» — он будет достаточно знаком, если вы использовали MVC в PHP, но хорошо справляется с различиями winforms.

http://martinfowler.com/eaaDev/uiArchs.html

person Fenton    schedule 26.07.2010
comment
Хорошо, спасибо за это, но все же это не совсем отвечает, кто является контроллером в моем случае - Program.cs, который создает ProgramContext или сам ProgramContext? - person F.P; 26.07.2010
comment
Что ж, Program.cs просто управляет приложением, больше ничего не должно происходить. У вас должен быть фактический контроллер для вашего приложения с именем MyApplicationController, который подготавливает модель, содержащую необходимые данные, и передает ее в представление (а затем получает модель обратно и решает, что делать дальше). - person Fenton; 27.07.2010