Por lo que entiendo, MVC separa las definiciones de clase (modelo) de la presentación (vista) a través del "pegamento" que es el controlador. El responsable del tratamiento debe tener una única responsabilidad y, por tanto, ser comprobable. Los ViewModels se utilizan para reunir datos de varias entidades y para "masajear" los datos del controlador para la vista.
Parece que la lógica empresarial realmente no tiene cabida ... así que creo que otra capa de servicios sería adecuada. Simplemente no estoy seguro de dónde colocar esta capa, o cómo construir los servicios. ¿Debería ser una clase llamada "servicios" que contenga un montón de funciones? Soy un poco nuevo en MVC, por lo que cualquier material de lectura, muestras o consejos generales para recién llegados sería increíble.