实现C#Business Objects(CSLA)

时间:2010-01-19 10:53:25

标签: c# business-objects csla

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

此外,学习曲线是什么样的,并且维持编写此方法的应用程序一样容易(我听说过)?

对于已实施此项目的任何公共部门(尤其是政府机构),也非常感兴趣。

谢谢,

MAS

5 个答案:

答案 0 :(得分:8)

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

  1. 定义分层方案
  2. 类的单元可测试性
  3. 框架如何与其他框架良好配合
  4. 它如何适应其他OR映射工具
  5. 学习曲线
  6. 如果您的评价似乎对上述项目有积极意义,那就去吧。简而言之,应该有使用这种框架的正当理由。你不应该接受某人的建议,而应该自己尝试。

答案 1 :(得分:4)

CSLA的学习曲线并不算太差,但要准备花一些时间阅读本书。我们通过为您生成DAL(参数化SQL或存储过程支持)来为您解决了很多学习曲线,因此它只为CSLA添加了ORM感觉,因为它可以为您管理DAL(如果您选择)。但是你可以完全将它用作一组BO模板。我发现主动生成使得更容易升级到更新版本的CSLA以及添加功能而不需要强大的中间类。

由于 -Blake Niemyjski(CodeSmith CSLA Templates的作者)

答案 2 :(得分:2)

我喜欢CSLA。

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

主要问题是:您需要 CSLA 吗?你喜欢什么功能,或者你只需​​要使用一些ORM?今天,我正在使用ADO.NET实体框架编写新的应用程序,它比CSLA更多高效

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

答案 3 :(得分:2)

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

使用单独的DAL在Rocky的书和www.lhotka.net上的样本中有详细记载

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

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

最后Rocky在他的网站http://download.lhotka.net/default.aspx?t=Core38

上销售CSLA培训视频

答案 4 :(得分:1)

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

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

您需要掌握的主要内容是CSLA是一个业务框架。即使ORM可以为您提供基本的验证(和其他)功能,但它们并不能真正弥补缺乏稳固的业务层。你当然可以在CSLA中使用ORM(在CSLA示例中有一个使用EF的例子,在我认为的CSLA Contrib项目中使用NHibernate作为例子),但这些技术都是免费的。

学习曲线......这取决于你。我发现它很容易上手。我想如果你对OO有很好的把握,你应该可以很快得到一些基本的东西。最近发布的视频也非常适合开始。