Como expresé en un comentario anterior, estoy demasiado interesado en esta pregunta.
En primer lugar, parece incorrecto crear directorios adicionales (para las otras clases y utilidades) directamente en su proyecto ASP.NET MVC. Además, no creo que deba ser modelo. Para mí, el modelo es más o menos clases de datos que de alguna manera representa la base de datos (o los datos que estamos tratando de modelar). Además de eso, a menudo la funcionalidad comercial (o las piezas de código "reales" en su aplicación) trata varias clases de modelos a la vez, por lo que puede no haber un lugar natural para ella en alguna clase de modelo.
así que creo que estoy inclinando hacia el siguiente esquema:
- Haga acciones del controlador muy pequeño; solo unas líneas de código cada una.
- Mantener modelo simple y en su mayoría sin función, y ponerlo en un proyecto separado .
- Ponga todos su código que hace todo el trabajo "real" (la "capa de negocios") en un proyecto separado.
De esta manera tendrá total libertad para elegir sus propios espacios de nombres, podrá crear cualquier cantidad de clases de utilidad, funciones y generalmente podrá estructurar su código como desee sin estar restringido por ASP. NET MVC.
Esto es solo una idea. Por el momento estoy trabajando en mi primera aplicación ASP.NET MVC más grande. Así que en realidad voy a aprender si esto funciona en la práctica y cómo funciona.
Si pudiera, daría esta pregunta +100 votos. Realmente quiero saber cómo otras personas abordan este problema. Acabo de comenzar a experimentar con ASP.NET MVC (en un proyecto de tamaño medio), y me encuentro arrinconado a menudo por la estructura del directorio y algunos de los conceptos de MVC. –