2

我们即将承诺实施 Rocky Lhotka 的 CSLA 作为我们的 Visual Studio 2008 解决方案的应用程序开发框架。我想在 SO 上测试水,并且与其他 ORM(如 Entity Framework 或 nHibernate)相比,我对开发人员对该方法的看法特别感兴趣。

此外,学习曲线是怎样的?维护使用这种方法编写的应用程序是否容易(正如我所听说的那样)?

也将非常有兴趣听取任何已实施此的公共部门(尤其是政府机构)的意见。

谢谢,

马斯

4

5 回答 5

8

CSLA 不是 ORM 框架。它是实现业务对象的框架。但是,有一些代码生成器可以为您生成数据访问代码。CSLA 框架基于 Active Record 模式。这种模式不适用于大型项目。在我看来,你应该实现一个原型。原型的目标应该是:

  1. 定义分层方案
  2. 类的单元可测试性
  3. 该框架如何与其他框架很好地配合使用
  4. 它如何与其他 OR 映射工具配合使用
  5. 学习曲线

如果您对上述项目的评价似乎是积极的,那就去吧。简而言之,使用这样的框架应该有适当的理由。你不应该听从别人的建议,而是自己尝试一下。

于 2010-01-19T11:09:56.217 回答
4

CSLA 的学习曲线并不算太差,但请准备好花一些时间阅读这本书。我们通过为您生成 DAL(参数化 SQL 或存储过程支持)为您处理了很多学习曲线,因此它为 CSLA 添加了 ORM 感觉,只是因为如果您愿意,它会为您管理 DAL。但是您可以完全将其用作一组 BO 模板。我发现主动生成可以更轻松地升级到新版本的 CSLA 以及添加功能,而无需强烈需要中间类。

谢谢 -Blake Niemyjski(CodeSmith CSLA 模板的作者)

于 2010-02-01T17:49:14.680 回答
2

我爱 CSLA。

我用它来实现一些非常大的 ASP.NET 2.0 应用程序。它很容易理解(在您了解 Root、Child 和 Switchable 对象之后),但您将严重依赖代码生成(如 CodeSmith)。

主要问题是:你需要CSLA吗?你喜欢什么功能,或者你只需​​要使用一些 ORM?今天,我正在使用 ADO.NET Entity Framework 编写新的应用程序,它比 CSLA更有效率。

请记住,CSLA 不是一种方法论,而只是一种工具:您需要了解它并在适当的时候对其进行调整。

于 2010-01-19T11:01:45.860 回答
2

CSLA 是一个业务对象框架。处理数据访问的策略有很多——ORM 和数据访问之间有很多重叠。我在数据访问层中使用 Linq-to-SQL 来简化开发取得了很大的成功。我认为这是一种适合您的方法 - 特别是考虑到(基于您的评论)您需要同时支持 SQL Server 和 Oracle。

Rocky 的书和​​ www.lhotka.net 上的示例中详细记录了使用单独的 DAL

就 TFS 而言 - 它是用于源代码控制、项目管理和构建自动化的 ALM 工具。您可能希望像任何其他代码一样将 CSLA 源代码置于源代码控制之下。最简单的方法是将 CSLA 包含在您的解决方案中。

另一种方法是单独编译它并在您的项目中使用对 CSLA.DLL 的文件引用。在 TFS 自动构建中有一个属性组,您可以将指向该 DLL 的路径放在构建服务器上。

最后,Rocky 在他的网站http://download.lhotka.net/default.aspx?t=Core38上出售 CSLA 培训视频

于 2010-02-25T22:24:05.780 回答
1

您可以在以下广播中查看 Rocky 对 SOA 的看法:

http://www.slickthought.net/post/Minneapolis-Developer-Roundtable-Podcast---Talking-REST.aspx

您需要掌握的主要内容是 CSLA 是一个业务框架。尽管 ORM 可以为您提供基本的验证(和其他)功能,但恕我直言,它们并不能真正弥补缺乏坚实的业务层。您当然可以将 ORM 与 CSLA 一起使用(在 CSLA 示例中有一个使用 EF 的示例,我相信在 CSLA Contrib 项目中使用 NHibernate 作为示例),但这些技术只是免费的。

学习曲线......这取决于你。我发现它很容易上手。我认为,如果您对 OO 有很好的了解,那么您应该可以很快启动并运行一些基本的东西。最近发布的视频也非常适合入门。

于 2010-01-19T11:06:13.120 回答