对于小型(ish)应用程序,是否值得使用3层架构

时间:2009-02-05 19:34:26

标签: .net asp.net design-patterns architecture n-tier-architecture

我正在开发一个相对较小的asp.net Web应用程序,我想知道是否真的需要采用完整的n层架构。对于大小的想法;大约有20个数据库表。

过去我使用了2层方法,其中业务逻辑和数据访问被组合到一个类库中,一个asp.net Web应用程序构成了UI层,这似乎工作正常。

是否存在阈值大小或一些经验法则,您应该使用n层?

5 个答案:

答案 0 :(得分:14)

现在可能相对较小,但您认为未来可能会增长吗?在你的课程中,你必须务实,但如果你已经在单个组件中有自然的分离关注,那么将它分成两个或多个组件相当容易。如果类本身结合了业务逻辑和数据访问,那么您就可以完成更多的工作。但是,我认为,如果需要的话,在一个程序集中编写数据访问逻辑并在另一个程序集中编写业务逻辑几乎不再需要,而不是在一开始就将它们全部写在一个地方。

答案 1 :(得分:3)

如果您预计会有任何增长或变化,那么现在就有助于强化明确的层级。但是,如果这是你自己的项目,并且你不介意考虑改变成本或紧密集成的代码,那么就像一层一样劈开它。

这都是关于未来的成本。目前,只需编程即可,最便宜,但不能很好地响应变化。通过层规划,有一个前期成本,但它可以处理变更并且比第一种方法更好地剥离整个层实现。

因此,您的经验法则取决于谁将为变更付款以及何时付款。

答案 2 :(得分:3)

是的,这是值得的。你提出的建议是一起解决问题。我不能告诉你这次给我带来了多少痛苦和痛苦。该硬币的另一面是过度开发解决方案的天文学开发者。你也想避免这种情况。

简单一点,构建你的三层,我建议你尝试使用LINQ to SQL,这样就可以轻松构建DAL,然后你可以专注于构建一个纤薄的UI,以及一个可以处理繁重工作的BLL。这样做不会花太多时间,以后可以进行单元测试。

答案 3 :(得分:1)

  

是否有阈值大小或某些规则   您应该使用的拇指   n层?

不是我所知道的,但我会抛弃它:如果这个网络应用程序有可能增长(或改变后端)和/或其他人可能最终维护它,我会考虑去采用n层方法。

答案 4 :(得分:1)

保持可行。它现在可能有些过分,但不要把自己写进一个不可能的情况。大规模重构比从头重建它需要更长的时间(并且很可能就是这样,从头开始重建)。

我工作的最后一个项目(来得很晚)是以一种几乎不可能破坏层级的方式编写的。数据逻辑与业务逻辑交织在一起,与表示逻辑交织在一起。在短期内,它一如既往的好,因为修复它需要几个月。

将所有内容保持分离并不是很难,就像我之前所说的那样,只是让它成为可能。