2010-08-22 25 views
5

¿Cuáles son las "mejores prácticas" relacionadas con el manejo de errores en una aplicación web ASP.NET MVC2 diseñada por DDD? Por ejemplo, tomemos el aspecto más común de una aplicación web, la entrada:Manejo de errores en la aplicación web ASP.Net MVC2 con sabor a DDD

  • UserController: coordina Obviamente unos objetos de dominio de tiempo la sesión o rechazar el usuario, y redirigir a otras partes de la interfaz web según sea necesario. En mi caso, es algunas llamadas a diferentes métodos UserTasks como IsLoggedIn() o LogIn(), más algunos de RedirectToAction.
  • UserTasks: Tiene la carne de la obra de coordinar los servicios de dominio relevante objetos, como SecurityService y menores de dominio objetos, tales como llamar SecurityService.ValidateUser() o comprobar User.IsUserInactive().
  • SecurityService: Obviamente coordina autenticación/autorización servicios. Similar a un MembershipProvider, sin el exceso de equipaje .
  • Usuario: Representa al usuario. No anémico, ya que tiene varios Métodos específicos del usuario como IsuUserInactive() que comprueba IsDeleted, IsLockedOut o si el usuario está entre FromDt y ThruDt.

¿Cómo se generan errores que son informativos y no hostiles para los usuarios? ¿Descansa el código con excepciones y luego solo maneja todo en Application_Error()? Por ejemplo, ¿debería ValidateUser() lanzar una ArgumentNullException() cuando la contraseña está vacía y una AuthenticationException() cuando la contraseña no es correcta, o devolver un bool = false? En este último caso, ¿cómo informa al usuario de qué fue lo que provocó la falla de la validación?

Respuesta

0

Supongo que está utilizando WhoCanHelpMe/S # arp Architecture según las convenciones de nomenclatura que veo? Si es así, recomiendo echar un vistazo a this article, que demuestra la implementación de una capa de servicios de aplicación más limpia. Eche un vistazo al resultado ActionConfirmation que se devuelve desde la capa de servicio; hemos encontrado que esta es una forma ideal de devolver un resultado de error menos que desagradable de la capa Tareas.

Cuestiones relacionadas