Me gustaría saber cómo puedo hacer para estructurar una aplicación web usando una carpeta por función (Clientes, Pedidos) en lugar de una carpeta por tipo de artefacto (Controladores, Vistas); esta parece ser una forma mucho mejor de organizar grandes proyectos con muchas características, pero no puedo encontrar ninguna información al respecto.¿Cómo estructurar la aplicación ASP.NET MVC utilizando la organización por función en lugar de por artefacto?
No creo que el uso de Áreas sería una solución, porque el uso de un Área por función requeriría la creación de muchas carpetas anidadas.
Creo que lo que quiero hacer debería ser posible mediante la personalización de una implementación de IViewEngine, pero no estoy seguro de eso.
¿Alguien ha intentado hacer esto?
Esto es más o menos la razón por la que no me gusta el co original nvention: http://www.paulstovell.com/horizontal-vertical-project-structure - Ya estoy usando este tipo de estructura en otros proyectos y me conviene. Sé que esto se puede hacer personalizando las implementaciones de IViewEngine e IControllerFactory, aquí estoy buscando alguna experiencia práctica sobre este cambio de convenciones y por qué lo es o no lo vale. Nota: No voy a usar andamios – gschuager
Estoy de acuerdo. Agrupación por rol, p. Controladores/Modelos/Vistas realmente comienza a morderte una vez que los proyectos crecen más allá de unos pocos controladores. La organización basada en funciones está muy avanzada en la organización de proyectos de producción. Lo recomiendo con cualquier proyecto. – demisx