Esto es más una pregunta abierta en lugar de buscar una respuesta específica.asp.net MVC Solution/Project layouts
Como todos sabemos, no hay una sola respuesta que se adapte a todas las soluciones, pero tengo curiosidad por saber cómo estructurar sus soluciones MVC de asp.net y cualquier escollo que pueda haber encontrado en su diseño o cosas que haría de manera diferente si pudieras comenzar de nuevo.
La plantilla MVC asp.net estándar es solo una plantilla básica y estoy seguro de que he leído/escuchado en un podcast que Scott Hanselman afirmó que la única razón para que la carpeta Modelo esté allí es para que la gente no pregunte dónde está el modelo. Esto ya implica que tal vez debería moverse a su propia clase separada.
Personalmente en las pequeñas aplicaciones de MVC que he hecho he separado el modelo en su única clase que contiene el modelo y el repositorio mientras que el proyecto 'MVC' tiene el controlador y las vistas. Esto en general se ha ejercitado sin problemas, pero como dije, solo han sido pequeñas aplicaciones.
¿Qué hacen la mayoría de las personas? - ¿Solo usando la plantilla estándar? - ¿Separar solo el modelo? - ¿Separar el modelo y el controlador? - ¿Separar incluso mover para que todo el acceso a datos se realice a través de servicios web o algún tipo de portal de datos? - ¿O algo totalmente diferente?
Finalmente, ¿cómo está la gente creando pruebas unitarias? ¿Solo una clase de prueba unitaria que evalúa cada uno de los proyectos o una clase de prueba unitaria para cada proyecto?
Enfoque interesante, después de un par de proyectos de MVC en una escala mucho más grande, el diseño predeterminado comienza a parecer muy desordenado. –