Algo que se me ocurrió hace un tiempo cuando aprendí sobre el nuevo framework MVC, es que WebForms fue, creo, un intento de MVC en muchos aspectos. El marcado y el código subyacente son View y Controller, y usted tiene que escribir su propio modelo.
Esta idea va de la mano con las importantes consideraciones de diseño que obtuve al aprender sobre MVC. El más importante es solidificar el dominio central de su sistema como un todo y asegurarse de que toda la lógica común se defina a un nivel reutilizable dentro de este dominio. Este es su Modelo, y me gusta llamar a la lógica que vive en este nivel Domain Logic (mezclo términos, lo sé). Su modelo debe ser reutilizable en diferentes aplicaciones (una aplicación web/winforms principal, aplicaciones de winforms para utilidad y configuración, servicios de procesamiento en segundo plano, servicios web, etc.). Sus aplicaciones deben seguir siendo muy específicas para su propósito: consisten en Presentation Logic (sus vistas) y Application Logic (sus controladores). Todo lo que cruza la línea de necesitar ser usado en otras aplicaciones es fácilmente clasificable como Domain Logic, y no debe ser parte del código de la aplicación para ninguna aplicación dada.
Espero que tenga sentido.
Lo esencial es que, incluso si no está utilizando un marco de MVC puro o un modelo de objeto o lo que sea, este diseño de alto nivel se puede aplicar con gran efecto. Aísle la lógica común en una capa de dominio que sea reutilizable en todas las aplicaciones y que sus aplicaciones sean mucho más fáciles de escribir y extender y mantener.