6

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?

Respuesta

4

Personalmente utilizo el enfoque de Jimmy Bogard: Organizing ASP.NET MVC solutions.

+0

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. –

0

Para ser sincero, la mayoría de las veces he encontrado la plantilla estándar lo suficientemente ordenada como para que simplemente la vuelva a usar. Diría que es realmente solo por tus preferencias particulares de organización.

Si mi modelo fuera realmente grande, definitivamente consideraría crear un proyecto de biblioteca de clases separado para él.

+0

¿Por qué lo separarías si fuera demasiado grande? ¿Por qué no separarlo desde el principio? Solo trato de aprender :) – Sam

+0

@Sam - Como digo, es una preferencia personal. No creo que un modelo pequeño merezca una biblioteca de clase completa para sí mismo (aunque algunas personas no estarían de acuerdo). Siento que la carpeta * Models * es suficiente separación. Sin embargo, si sintiera que mi modelo se estaba volviendo bastante grande/complejo, definitivamente consideraría ponerlo en una DLL, de esa manera mantendría el desorden de mi modelo lejos de la estructura de mi sitio web. – James