Código MVC que estructura preguntas de mejores prácticas [cerrado]

Estoy tratando de mejorar la estructura de mi código, así que tal vez pueda obtener información sobre los siguientes puntos y preguntas sobre cómo manejar principalmente los servicios.

  1. Un servicio no debe depender de la capa de presentación, por lo que pasar cosas como httpcontext a funciones de servicio/servicio a través del constructor y similares es una mala práctica, ¿correcto?

  2. ¿No debería uno tener servicios que se refieran entre sí? ¿Deberían funcionar solo 'hacia abajo' como, por ejemplo, la dependencia del repositorio? ¿O eso se considera correcto?

  3. ¿Un servicio solo contendría la funcionalidad directamente relacionada con el filtrado y el procesamiento de la información de la base de datos/repositorio o podría uno considerar, por ejemplo, una clase dedicada exclusivamente al cifrado y la generación de cadenas/contraseñas aleatorias o una funcionalidad de parte de confianza del proveedor de manejo de clases como un servicio también? ¿O quizás se considerarían clases de utilidad?

  4. ¿Existe una forma buena y aceptada de manipular sesiones dentro de un servicio o esto debería pasarse al controlador y manejarse allí?

preguntado el 28 de julio de 12 a las 01:07

Hola, bienvenido a stackoverflow. Me doy cuenta de que MVC es un tema complicado, pero su pregunta es demasiado amplia. Si lees las preguntas frecuentes ( stackoverflow.com/faq#dotask ) If you can imagine an entire book that answers your question, you’re asking too much. Hay muchos libros sobre mvc. Mi consejo es intentar crear un marco mvc y luego hacer preguntas específicas a medida que aparecen. No hay una respuesta que alguien pueda darle que ayude a que MVC tenga sentido. Esa comprensión se forja a partir de la experiencia. -

¿Estás hablando de ASP.NET MVC o del patrón MVC en general? Tus etiquetas lo hacen confuso, porque no son lo mismo. -

Hola y gracias por la bienvenida;) Estaba hablando de asp.net MVC y la razón por la que estaba hablando en términos muy amplios era que estaba buscando más pautas genéricas (si es posible) que una respuesta exacta a un problema específico. Luxspes parece responder en el nivel de respuesta que estaba buscando, así que estoy contento con esa respuesta si ahora tiene alguna adición útil. En una nota al margen, vi personas que recomendaban el libro 'Código limpio', así que estaba pensando en revisarlo para ver si me ayuda a profundizar más en el tema. -

1 Respuestas

Un servicio no debe depender de la capa de presentación, por lo que pasar cosas como httpcontext a funciones de servicio/servicio a través de contstructor y similares es una mala práctica, correcto.

Si puedes evitarlo, evítalo. Pero depende, si es un servicio para la capa de presentación, entonces puede estar bien.

¿No debería uno tener servicios que se refieran entre sí? ¿Deberían funcionar solo 'hacia abajo' como, por ejemplo, la dependencia del repositorio? ¿O eso se considera correcto?

Si puedes evitarlo, evítalo. Depende de su arquitectura, si, por ejemplo, está trabajando en asp.net mvc, haría bien en evitar esto y mantener el tipo de código que orquesta su servicio múltiple en el Normativa nivel

¿Un servicio solo contendría la funcionalidad directamente relacionada con el filtrado y el procesamiento de la información de la base de datos/repositorio o podría uno considerar, por ejemplo, una clase dedicada exclusivamente al cifrado y la generación de cadenas/contraseñas aleatorias o una funcionalidad de parte de confianza del proveedor de manejo de clases como un servicio también? ¿O quizás se considerarían clases de utilidad?

Puede usar servicios para filtrar y procesar información de la base de datos/repositorio o también puede crear uno dedicado únicamente al cifrado y la generación de cadenas/contraseñas aleatorias. Los servicios son clases, por lo que es importante que sigan las Principio de responsabilidad única

¿Existe una forma buena y aceptada de manipular sesiones dentro de un servicio o esto debería pasarse al controlador y manejarse allí?

Es mejor para escalar si sus servicios no tienen estado, pero si va a tener que lidiar con sesiones u otras cosas del ciclo de vida, y está creando sistemas web en .net, lo mejor que puede hacer es usar asp.net mvc, integrado con La Unidad para que consigas Inversión de control, de esa manera puedes lidiar con la sesión usando gerentes de por vida

Respondido 28 Jul 12, 04:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.