关于 .net:有人对 CSLA 有任何实际经验吗?

关于 .net:有人对 CSLA 有任何实际经验吗?

Does anyone have any real-world experience of CSLA?

我公司的主要 Web 应用程序迫切需要一组漂亮的库,以使其在某种程度上可维护和可扩展,我的一位同事建议使用 CSLA。所以我买了这本书,但是:

programmers don't read books anymore

我想评估一下 SOFlow 社区对它的看法。

所以这是我的问题:

  • 人们如何使用 CSLA?
  • 优缺点都有什么?
  • CSLA 真的不适合 TDD 吗?
  • 我的替代方案是什么?
  • 如果您已停止使用它或决定反对,为什么?

  • 在具体回答您的问题之前,我想先谈谈一些想法。 CSLA 适合您的项目吗?这取决于。对于不将单元测试视为高优先级的基于桌面的应用程序,我个人会考虑使用 CSLA。如果您想轻松扩展到 n 层应用程序,CSLA 非常棒。 CSLA 往往会受到一些批评,因为它不允许纯粹的单元测试。这是真的,但是就像技术中的任何事情一样,我相信没有一个真正的方式。单元测试可能不是您为特定项目进行的事情。适用于一个团队和一个项目的方法可能不适用于另一个团队或其他项目。

    关于 CSLA 也存在许多误解。它不是 ORM。它不是 NHibernate 的竞争对手(实际上是使用 CLSA Business Objects


    n


    n


    n


    几年前我就有过这种经历。这是一个出色的架构,但非常复杂,难以理解或更改,它解决了我们大多数开发基于 Web 的应用程序不一定存在的问题。它更多地是为基于 Windows 的应用程序和处理多级撤消而开发的,重点强调事务逻辑。您可能会听到有人说,由于 Web 应用程序是页面级别的请求-响应,这是不合适的,但是对于 AJAX 样式的 Web 应用程序,这个论点可能不成立。

    它有一个非常深的对象模型,可能需要一段时间才能真正将你的大脑包裹在它周围。当然,很多东西可以在几年内改变。我很想听听其他最近的意见。

    综合考虑,这不是我的首选建筑。


    n


    n


    n


    n


    我们开始使用 CSLA 是因为我们认为它有助于我们的模型层。有点矫枉过正,我们现在使用的主要是 SmartDate 类,只是因为我们已经链接到库。

    我们认为验证接口确实可以帮助我们执行业务规则,但它不能很好地与 WCF 和序列化配合使用(我们仍然停留在 2.0.3.0 版本上,所以事情可能已经改变了)。


    n


    n


    n


    n


    n


    n


    n


    n


    n


    n


    n


    n


    n


    推荐阅读