Это действительно зависит от платформы, на которой вы работаете, потому что существуют огромные различия с разработкой рабочего стола (например, WinNET Forms / WPF или. Swing против ASP.NET и Java-сервлетов или PHP, например, в .NET).
В настольном программировании система событий позволяет действительно легко (а иногда даже естественно, в зависимости от того, как вы смотрите на него) выполнять большую часть работы в самом событии, но в конечном итоге вы обнаружите, что кодируете МНОГО логика программы там, что делает ваш взгляд беспорядок. В веб-программировании это сделать труднее, потому что вы не можете использовать большую часть системной логики в браузере (вы не можете открыть соединение с базой данных, у вас нет доступа к сеансу или любой другой информации). который ранее не был доступен на сервере).
Кроме того, гораздо проще применять MVC в веб-разработке из-за особенностей работы запросов и ответов. С другой стороны, когда вы программируете на рабочий стол, все в порядке, вы можете легко получить доступ к любому элементу управления, возможно, из любого места, и даже если вы этого не сделаете, вы будете думать, что это нормально (даже если это не так), чтобы поделиться вещами используя статические переменные (или много синглетонов).
Короче говоря, я бы сказал, что вы должны приложить все необходимые усилия для возобновления логической программы в событиях, насколько это возможно. С некоторой практикой вы обнаружите, что делегирование логики обычному объекту вместо самого представления облегчит вашу жизнь в долгосрочной перспективе.
Со временем: тип контроллера, который вы используете, тоже может быть важен. Например, ASP.NET использует какой-либо Контроллер страниц, в то время как многие PHP и Java-среды более удобны для использования FrontController (это, конечно, не правило, но может иметь значение, как вы видите вещи).