vistas tutorial recuperar pueden para pagina net mvc multiples misma metadatos establecer asp asp.net-mvc asp.net-mvc-controller actionmethod

asp.net mvc - tutorial - Mantener un controlador delgado(demasiados métodos de acción)



web forms c# (3)

Buena pregunta.

Creo que un controlador "delgado" puede que aún tenga que ser "ancho" o "alto" dependiendo de cómo se quiera estirar la analogía. Si no hay una manera clara de dividir un controlador que necesite hacer muchas cosas, no creo que sea un problema siempre que cada Acción se centre exclusivamente en la preparación de Vistas / Modelos de Vista y tenga un tamaño de código limitado.

Estoy trabajando en mi primer proyecto MVC de ASP.NET real y he notado que el controlador en el que he estado trabajando se está haciendo bastante grande. Esto parece ir en contra de la mejor práctica de mantener sus controladores delgados.

He hecho un buen trabajo manteniendo la lógica empresarial fuera de los controladores. Yo uso una capa separada para eso. Cada acción llama principalmente a un método en la capa empresarial y coordina el resultado final en función de si el estado del modelo es válido o no.

Dicho esto, el controlador tiene una gran cantidad de métodos de acción. Intuitivamente, me gustaría dividir el controlador en sub-controladores pero no veo una manera fácil de hacerlo. Simplemente podría dividir el controlador en controladores separados, pero pierdo la jerarquía y se siente un poco sucio.

¿Es necesario refactorizar un controlador con un gran número de acciones delgadas? Si es así, ¿cuál es la mejor manera de hacer esto?


Otra opción estructural que tiene es introducir clases parciales para agrupaciones lógicas de acciones. Y usando algo como vscommands para agrupar los archivos.

Dudo que alguien pueda idear una cantidad mágica de acciones que te diga cuándo es una buena idea dividir las cosas e introducir nuevos controladores, realmente depende de tu dominio.


Primero, cuando escuche que es bueno mantener el código del controlador al mínimo, esto se refiere principalmente a mantener cada método de acción lo más delgado posible (ponga la lógica en lugar de clases de negocios, no en Vistas y Modelos de Vista). Parece que está haciendo esto , Lo cual es genial.

En cuanto a tener "demasiados" métodos de acción, esta es una decisión de juicio. En realidad, podría ser un signo de buena organización, que cada acción se enfoca en una cosa. Además, ¿quizás estás usando acciones específicamente para usar con RenderAction? Y, podría ser la naturaleza de su solución que haya muchas cosas que hacer en relación con el tema de su Controlador.

Entonces, mi conjetura es que probablemente estés bien. Sin embargo, para asegurarse, en el papel de notas, divida el controlador en 2 o 3 controladores y haga un bosquejo de cómo funcionarán sus historias pasando de una acción a otra. Y si encuentra que su flujo de trabajo funciona con más controladores, debe dividirlo. Especialmente si vas a agregar a esta funcionalidad más tarde. Cuanto antes lo rompas, mejor.