2010-08-22 11 views
5

DDD tasarlanmış bir ASP.NET MVC2 web uygulamasında hata işleme ile ilgili "en iyi uygulamalar" nelerdir? Örneğin, bir web uygulaması en yaygın yönünü ele alalım, giriş:DDD Aromalı ASP.Net'te İşleme Hataları MVC2 Web Uygulaması

  • UserController: Açıkçası içinde birkaç alanı nesneleri nihayetinde günlük koordinatları veya kullanıcıyı reddetme ve diğer bölgelerine yönlendirmek Web arayüzünün gerektiği gibi. Benim durumumda, , IsLoggedIn() veya LogIn(), ve bazı RedirectToAction gibi farklı UserTasks yöntemlerine yapılan birkaç çağrıdır.
  • UserTasks: İlgili alan adını böyle User.IsUserInactive kontrol SecurityService.ValidateUser() veya () çağırarak olarak SecurityService gibi nesneler hizmetleri ve alt etki alanı nesneleri koordine çalışmalarına eti vardır.
  • SecurityService: Açıkçası Kimlik Doğrulaması/Yetkilendirme hizmetlerini koordine eder. fazla bagaj olmadan, MembershipProvider benzer.
  • Kullanıcı: Kullanıcıyı temsil eder. anemik, gibi IsuUserInactive() gibi IsDeleted, IsLockedOut denetler veya kullanıcı Kullanıcı FromDt ve ThruDt arasındadır.

Hatalar nasıl bilgilendirilir ve kullanıcılara karşı düşmanca davranır? İstisnalar ile kod çöp ve Application_Error()? Örneğin, parola boşsa ve parola doğru olmadığında bir AuthenticationException() ValidateUser() bir ArgumentNullException() atmalı mı yoksa bir bool = false döndürmelidir? Eğer ikincisiyse, doğrulama işleminin neden başarısız olduğu konusunda kullanıcıyı nasıl bilgilendiriyorsunuz?

cevap

0

Gördüğüm adlandırma kurallarına dayalı olarak WhoCanHelpMe/S # arp Architecture'ı kullandığınızı varsayıyorum. Eğer öyleyse, daha temiz bir uygulama hizmetleri katmanının uygulanmasını gösteren this article'a bir göz atmanızı tavsiye ederim. Hizmet katmanından döndürülen ActionConfirmation sonucuna bakın; Bunu Görevler katmanından daha az kötü bir hata sonucu döndürmek için ideal bir yol bulduk.