【问题标题】:Best IoC framework for .Net [duplicate].Net 的最佳 IoC 框架 [重复]
【发布时间】:2008-09-19 07:48:16
【问题描述】:

可能重复:
Which .NET Dependency Injection frameworks are worth looking into?

StructureMap 和 Ninject 中哪个 IoC 最好?

这应该合并到:Best injections frameworks

【问题讨论】:

  • 最好是相对的。
  • @ScottHanselman:价值是主观的,但也是最重要的

标签: inversion-of-control


【解决方案1】:

视情况而定。对于需要简单容器的小型项目,我会选择 Ninject。我喜欢它又小又瘦的事实。我不喜欢这个属性,但有办法解决这个问题。

对于一个您可能需要的不仅仅是简单的 IoC 的大型解决方案,我会选择 Castle 的东西。那里有很多灵活性,你可以使用 xml、属性或 DSL 来配置东西,如果你以后需要的话,你可以将你的 IoC 扩展到 AOP 领域。

我还没有尝试过结构图。它似乎比 IoC 做得更多。但我无法对此发表评论。我认为 Ninject 和 Structuremap 用于不同的目的,因此如果不了解更多关于上下文的信息,很难在两者之间进行选择。更好通常是一个相对概念:-)

【讨论】:

    【解决方案2】:

    我使用 StructureMap,所以我可能认为它是最好的。但也许将来我会选择 Unity,因为它是 MS 支持的,这意味着更好的文档和更少的依赖于一个人的善意,尽管那个人非常善意。当然,我不会仅仅因为它很好就改变框架。只要有效果,我什至都不升级。

    【讨论】:

    • 我找不到任何 Unity 文档。有人可以提供链接吗?
    • 我个人发现 Unity 难以使用,因为缺乏文档(包括 XML 文档,来自内存)和高度复杂性。我不认为“微软支持”的推理是好的推理。
    【解决方案3】:

    没有最好的。他们中的大多数以几乎相同的方式完成您需要的 90% 的工作。在某些情况下,一种可能比另一种更灵活。

    如果没有别的选择,我会选择温莎,但我已经非常了解了。但如果我必须使用 Ninject 或 StructureMap,我不会抱怨。它们都是很好的框架。

    我知道目前 Ninject 是唯一可以在 Compact 框架上运行的,所以如果这是一个 req.那么 Ninject 就是要走的路。

    我有点害怕 Spring.NET,主要是因为我讨厌 XML。但也许它并没有我想的那么糟糕,不要喷我:)

    【讨论】:

      【解决方案4】:

      我自己会完成这个过程。我建议从 ninject 开始。只是因为它非常轻巧并且入门级别非常低。您可以在几个小时内启动并运行它。

      您会发现,您将在设计系统时考虑到 IoC,并且无论您使用哪种 IoC 框架,设计都将大体相同。

      如果您愿意,您应该能够将 NInject 换成 StructureMap 之类的东西,而无需对基本框架管道进行过多的重新工作。

      您最好的选择是开始使用一个,看看您发现了什么问题,然后决定替代方案是否更适合您的需求。

      那里的框架似乎正在经历一个动态时期,新版本在各地发布。而 MEF,即 IoC 等等,可能会迫使格局进一步改变。

      【讨论】:

        【解决方案5】:

        autofac 是小型项目的不错选择。如果你想要与你能想象到的任何东西进行硬核 IoC + 集成,我推荐Spring.NET

        编辑现在我想起来了,Autofac 适合任何规模的项目,而 Spring.NET 感觉太企业化了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-26
          • 2010-10-30
          • 2012-12-28
          • 2011-09-05
          • 1970-01-01
          相关资源
          最近更新 更多