【发布时间】:2011-11-11 20:46:54
【问题描述】:
我最近与同事讨论了推动我们的 Web 应用程序采用规范的 n 层结构。令我震惊的是,我想不出任何替代方案。
是否总是需要将 Web 应用程序分层?
【问题讨论】:
标签: asp.net architecture
我最近与同事讨论了推动我们的 Web 应用程序采用规范的 n 层结构。令我震惊的是,我想不出任何替代方案。
是否总是需要将 Web 应用程序分层?
【问题讨论】:
标签: asp.net architecture
传统 N 层架构的替代方案是 Udi Dahan 所讨论的 Command-Query Responsibility Segregation (CQRS) 架构。
像所有架构决策一样,您应该真正考虑何时使用它,正如所讨论的here
就个人而言,我倾向于在我的软件旅行中看到很多"over architecture",这确实会使事情变得过于复杂,并使事情变得更加难以维护,而且显然成本也更高。您确实需要首先考虑业务问题,而不仅仅是选择架构。
让事情尽可能简单以获得最佳结果和轻松重构。
【讨论】:
是否总是需要将 Web 应用程序分层?
您应该分离系统的不同逻辑部分,以避免它们紧密耦合,从而使它们更易于重用。将它们分开并不是那么重要。您可以将其称为 layers 或其他任何名称。
实际上这些层可能有两种含义:
您还可以查看Onion Architecture。但是洋葱还是有层次的:-)
【讨论】:
强烈推荐阅读Microsoft Application Architecture Guide, 2nd Edition。
然后,您会意识到分离对于每个网站(不只是 2 个左右的简单网页)来说是多么重要。
这是一本详尽的指南,解释了每一层的角色和职责,以及它们如何在一个强大且可扩展的应用程序中一起发挥作用。
您不必阅读全部内容,但首先请查看Chapter 5: Layered Application Guidelines。
【讨论】:
分层架构有另一种“模式”。
但这是分层架构试图解决的反模式。即“大泥球”:)
【讨论】: