Quali sono le "migliori pratiche" relative alla gestione degli errori in un'applicazione Web ASP.NET MVC2 progettata da DDD? Per esempio, prendiamo l'aspetto più comune di una web app, il login:Gestione degli errori nell'applicazione Web ASP.Net MVC2 con DDD
- UserController: Coordinate Ovviamente alcuni oggetti di dominio al fine il Login o rifiutare l'utente, e reindirizzare ad altre parti dell'interfaccia web secondo necessità. Nel mio caso, è alcune chiamate a diversi UserTasks metodi come IsLoggedIn() o LogIn(), più alcuni RedirectToAction.
- UserTasks: ha la carne del lavoro di coordinamento relativo dominio oggetti servizi, come SecurityService e inferiori dominio oggetti, ad esempio chiamando SecurityService.ValidateUser() o controllo User.IsUserInactive().
- SecurityService: Ovviamente coordinate autenticazione/autorizzazione servizi. Simile a un provider di appartenenze , senza il bagaglio in eccesso .
- Utente: rappresenta l'utente. Non anemico, in quanto ha vari metodi specifici dell'utente come IsuUserInactive() che controlla IsDeleted, IsLockedOut o se l'utente è tra FromDt e ThruDt.
Come si evidenziano errori tali da essere informativi e non ostili agli utenti? Eliminate il codice con le eccezioni e poi gestirle tutte in Application_Error()? Ad esempio, se ValidateUser() genera un ArgumentNullException() quando la password è vuota e un AuthenticationException() quando la password non è corretta, o restituisce un bool = falso? Se quest'ultimo, come informa l'utente di ciò che ha causato il fallimento della convalida?