asp.net-mvc-2 - 处理 DDD 风格的 ASP.Net MVC2 Web 应用程序中的错误

标签 asp.net-mvc-2 error-handling domain-driven-design

在 DDD 设计的 ASP.NET MVC2 Web 应用程序中,关于错误处理的“最佳实践”是什么?例如,让我们看一下 Web 应用程序最常见的方面,即登录:

  • 用户 Controller : 明显坐标
    一些域对象最终
    登录或拒绝用户,以及
    重定向到网络的其他部分
    接口(interface)根据需要。就我而言,它是
    对不同 UserTasks 的几次调用
    IsLoggedIn() 或 LogIn() 等方法,
    加上一些 RedirectToAction。
  • 用户任务 : 有工作的重点
    协调相关领域
    对象服务,例如
    SecurityService 及下域
    对象,例如调用
    SecurityService.ValidateUser() 或
    检查 User.IsUserInactive()。
  • 安全服务 : 明显地
    坐标
    认证/授权
    服务。类似于一个
    MembershipProvider,没有
    超重行李。
  • 用户 : 代表用户。不是
    贫血,因为它有各种
    用户特定的方法,例如
    检查的 IsuUserInactive()
    IsDeleted、IsLockedOut 或如果用户
    介于 FromDt 和 ThruDt 之间。

  • 您如何冒泡错误以使它们提供信息并且对用户没有敌意?您是否在代码中乱扔异常,然后只在 Application_Error() 中处理它们?例如,ValidateUser() 应该在密码为空时抛出 ArgumentNullException(),在密码不正确时抛出 AuthenticationException(),还是返回 bool = false?如果是后者,您如何告知用户导致验证失败的原因?

    最佳答案

    我假设您根据我看到的命名约定使用 WhoCanHelpMe/S#arp 架构?如果是这样,我强烈推荐看看 this article它演示了更清洁的应用程序服务层的实现。看看ActionConfirmation从服务层返回的结果;我们发现这是从任务层返回不太严重的错误结果的理想方法。

    关于asp.net-mvc-2 - 处理 DDD 风格的 ASP.Net MVC2 Web 应用程序中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3542425/

    相关文章:

    javascript - 类型错误 : undefined is not a function --- Need to troubleshoot

    c# - 域模型中的域服务与实体方法

    c# - 通过显式本地化获取资源值(value)

    c# - "Input string was not in a correct format."C#

    javascript - 如何修复(错误:any)=>Observable<any> is not assignable?

    c# - Clean Architecture 中的用户实体

    domain-driven-design - 值与实体对象(领域驱动设计)

    asp.net-mvc - ASP.NET Mvc 2如何从javascript内部启动客户端验证?

    asp.net-mvc - ASP.NET MVC 2 中相同操作的不同 View ——我应该继承 Controller 吗?

    ASP.NET MVC 2.0 客户端验证 HOWTO