Mejores prácticas para particionar el código del modelo en partes lógicas en MVC? ¿Cual es el mejor?

Soy nuevo en MVC pero por lo que he aprendido hasta ahora (por ejemploaquí, por ScottGu) uno debería aspirar a "controladores flacos" en lugar de "gordos".
Agregue a eso el hecho de que las vistas son inherentemente delgadas, y obtendrámucho de código en su modelo.

Entonces mi pregunta es: ¿cómo se reparte el código en su modelo en diferentes partes lógicas para reducir la complejidad?
¿Usas Data Access Layer y Business Logic Layer dentro del modelo mismo (que supongo que aún tendría mucho código), o hay mejores formas de hacerlo?

Gracias.

Respuestas a la pregunta(4)

Su respuesta a la pregunta