How should my team decide between 3-tier and 2-tier architecture?

My team is discussing the future direction of our projects. Half of the team believes in pure three-tier architecture, while the other half believes in two-tier architecture.

Project Assumptions:

  • Enterprise Business Applications
  • Business logic required by user and database
  • Data Validation Required
  • Service-oriented (prefer RESTful services)
  • Multi-Year Service Plan
  • Support for hundreds of users.

3-level commands:

  • Permanent layer <==> Domain level <==> UI level
  • A service boundary between at least a constant layer and a domain layer. A domain level may have a service boundary between it.
  • Transfers between each layer (pure DTO separation)
  • , ,

2- :

  • Entity Framework + WCF < == >
  • -, WCF
  • -

. ? ?

+5
2

, , . , - , :

  • ( )
  • , , SRP, ..
  • , , . .

YMMV.

+4

, . , , , . , , , 3 . , , - , , .

, , , , . . , . , . , , , , , .. , , . , .

+2

All Articles