用于Web应用程序的NTier架构的替代方案

时间:2011-09-07 05:52:40

标签: asp.net architecture

我最近与同事讨论了推动我们的网络应用程序遵守纪律的n层结构。让我感到震惊的是,我想不出任何替代方案。

总是应该将Web应用程序分成几层吗?

4 个答案:

答案 0 :(得分:7)

传统的N层架构的替代方案是Udi Dahan讨论的Command-Query Responsibility Segregation(CQRS)架构。

与所有架构决策一样,您应该考虑何时使用它来讨论here

就个人而言,我倾向于在我的软件旅行中看到很多"over architecture",这可能会使事情变得更加复杂,并且使维护起来更加困难,而且显然也会花费更多。您首先需要首先考虑业务问题,而不仅仅是选择架构。

尽可能保持简单,以获得最佳效果和轻松重构。

答案 1 :(得分:5)

  

总是应该将Web应用程序分成几层吗?

您应该将系统的不同逻辑部分分开,以避免它们紧密耦合,这使得它们更容易重复使用。把你分开的东西并不是那么重要。您可以将其称为图层或其他任何内容。

实际上这些层可能有两种含义:

  1. 物理边界:客户端浏览器,Web服务器,Web服务服务器,后端数据库......
  2. 逻辑边界:GUI,服务层,DAL,......
  3. 您也可以查看Onion Architecture。但洋葱仍然有层次: - )

答案 2 :(得分:3)

强烈建议您阅读Microsoft Application Architecture Guide, 2nd Edition

然后,您将意识到每个网站的分离对于两个简单的网页都是多么重要。

这是一个全面的指南,解释了每一层的角色和责任,以及它们如何在一个强大的&可扩展的应用程序。

您不必全部阅读,但首先请查看Chapter 5: Layered Application Guidelines

答案 3 :(得分:2)

分层架构还有另一种“模式”。

但这是分层架构试图解决的反模式。即“泥球大球”:)