我的团队应该如何决定3层和2层架构?

Jor*_*mer 5 .net architecture soa

我的团队正在讨论我们开展项目的未来方向.一半的团队相信纯粹的3层架构,而另一半则倾向于采用双层架构.

项目假设:

  1. 企业业务应用
  2. 用户和数据库之间需要业务逻辑
  3. 必要的数据验证
  4. 面向服务(更喜欢RESTful服务)
  5. 多年维护计划
  6. 支持数百名用户

3层团队的优惠:

  1. 持久层<==>域层<==> UI层
  2. 至少持久层和域层之间的服务边界.域层可能在它之间具有服务边界.
  3. 每层之间的翻译(清洁DTO分离)
  4. 除非我们能够找到创意而优雅的自动化,否则手动持久

2层团队的优惠:

  1. 实体框架+ WCF数据服务层<==> UI层
  2. 业务逻辑保留在WCF数据服务拦截器中
  3. 层之间的最小转换 - 有利于更快的编码

这就是高级别的论点.我们应该考虑哪些因素?您对这两种方法有什么经验?