Controlador / Clase de estado estático en la aplicación WinForms - ¿Dónde colocarlo?

Estoy escribiendo una aplicación de WinForms y quiero tener un diseño "Tipo MVC". En realidad es más MVP o MVVM ,.

El plan es tener un Controlador Central que haga todo el trabajo real, de modo que los Formularios simplemente muestren ViewModels y manejen la entrada del usuario, pero todo lo que realmente hace algo pasa a través del Controlador.

Me pregunto si es una buena idea y dónde colocar el controlador. La idea actual es tener una clase estática que se inicialice en Program.cs (envío en algunas dependencias como IMyDatabaseRepository) para que quede como un controlador que delegue el trabajo entre la interfaz de usuario y el modelo.

Como puede imaginar, provengo de un fondo web y tengo poca experiencia con la arquitectura de WinForms. Anteriormente, mi MainForm era la clase Controlador, que contenía todas las variables de estado, lo que obviamente significa que mi MainForm es mi aplicación en lugar de solo una parte de la Interfaz de usuario.