Контроллер приложений немного отличается от контроллера, используемого в MVC.
Страница Мартина Фаулера на Прикладном контроллере .
В случае приложения MVP WinForms, которое, как мне кажется, является предметом вопроса. Вы можете поместить всю логику "какую форму я сейчас показываю" в Presenter, но по мере роста вашего приложения вы будете дублировать много кода между Presenters.
Скажем, у вас есть 2 вида, в обоих из которых есть кнопка «Редактировать этот виджет», оба должны иметь логику, чтобы получить WidgetEditorPresenter и показать связанный вид. Если у вас есть ApplicationController, вы перемещаете эту логику в ApplicationController, и теперь у вас просто есть зависимость во всех ваших докладчиках от ApplicationController, и вы можете вызвать appController.EditWidget (), и он отобразит правильное представление.
Контроллер приложений - это uber-контроллер, который контролирует поток приложений во всей вашей системе при переходе от экрана к экрану.