您对MS CAB(复合应用程序块)有何看法?

时间:2009-01-25 14:11:09

标签: .net winforms frameworks infragistics cab

我正在评估使用CAB进行新的.net 3.5 winform项目

我计划使用Infragistics工具集which is known to be 'CAB compliant'

虽然CAB立即让我专注于我的业务而不是编码基本的对接/登录/等代码,但我觉得我能够自己完全达到相同的功能水平(增加了灵活性)当你拥有“代码”时,你有/反应性奖励。

我正在寻求使用它的人对微软CAB的一些反馈:

  1. 您遇到过问题/错误吗?
  2. 你觉得CAB能节省你的时间吗?
  3. 是否有我不了解的额外功能(除了Docking / Login / WorkerThreads最佳实践?)

5 个答案:

答案 0 :(得分:7)

几年前我有一些使用CAB的经验,我的结论是它过于复杂,学习曲线陡峭。因此,它所提供的好处并不值得用它来加快速度。但是不要相信我的意思,尝试按照他们的一些实验,看看你的想法。

Jeremy Miller撰写了一系列关于构建自己的CAB的博客文章

http://codebetter.com/blogs/jeremy.miller/archive/2007/07/25/the-build-your-own-cab-series-table-of-contents.aspx

值得一看,因为你可以从那里拿出你需要的东西。

我的建议是继续你的项目,而不是预先建立一个框架。随着项目的发展,您应该发现将代码重构为基类的机会,并有效地从您的应用程序中获取框架。

这样,您最终将得到满足您需求的框架,并且开发团队中的每个人都会理解。无论你做什么都没有预先建立一个框架 - 存在着毁灭的道路: - )

答案 1 :(得分:4)

我们在几个项目中使用了CAB + SCSF。学习曲线确实很陡峭。你可能会在第一个月后加速。 其他缺点:

  1. 太复杂
  2. 图案-炎
  3. 代码生成膨胀
  4. 难以调试
  5. 专业人士:

    遵循业内最佳实践架构设计模式:

    1. 模型 - 视图 - 演示
    2. 用户界面构成
    3. 依赖注入,控制反转
    4. 松散耦合事件
    5. 模块化
    6. 等...
    7. 从长远来看,使用CAB-SCSF意味着更少的错误和更易于维护的代码。如果您的项目能够承受学习曲线的初始命中,我肯定会推荐它。

答案 2 :(得分:1)

CAB已退休,转而使用SCSF。 CAB和SCSF在标准化跨项目的富客户端开发方面提供了一些价值(如果你以这种方式使用它们),但两者都是非常重量级的。

答案 3 :(得分:0)

虽然我从未真正使用过CAB,但它附带了源代码,因此如果您需要应用程序块未提供的额外灵活性,您仍然可以调整它以满足您的确切需求。

答案 4 :(得分:0)

我们已经在CAB框架上构建了我们的企业应用程序,但已经修改了它的许多部分以满足我们的需求。

根据这一经验,我可以说CAB更适合,当您需要一个非常灵活的模块化架构时,ui,业务逻辑和数据层的开发之间存在明显的区别。

CAB的缺点是拥有大量生成的代码,有时会诱使开发人员使用复杂的机制来实现简单的结果(比如过度使用事件发布/订阅模型,甚至是最简单的ui的mvp模式,......)< / p>

如果你想要对它进行介绍,那里有Rich Newman的精彩系列 http://richnewman.wordpress.com/intro-to-cab-toc/

如果您只想使用依赖注入/控制反转,那么托管可扩展性框架(http://mef.codeplex.com/)可以是一个非常好的,轻量级的替代方案。