Если вы строите что-то в соответствии с основной формой, как вы описываете, вам действительно следует разработать архитектуру с определенным уровнем бизнеса и данных. Ваши реальные функциональные возможности и манипуляции должны быть разделены на библиотеку классов, созданную специально для обработки абстрагированной информации / операций. То же самое с вызовами и обработкой данных. Их следует абстрагировать в отдельную библиотеку, которая отвечает за управление операциями ввода / вывода для ваших источников данных.
То, что это делает, это сокращает код в вашей фактической форме до элементов, которые фактически необходимы для управления отображением и немедленным поведением (щелчки, ролловеры, меню и т. Д.). Даже некоторые из них могут быть объединены, если вы эффективно управляете своими состояниями формы. Суть в том, что вы хотите быть уверенным в том, чтобы абстрагироваться от формы настолько, насколько это возможно, и оставить ответственность за ее немедленное отображение.