4

开发 ASP.NET Web 应用程序项目时要考虑哪种 IoC,不同 IoC 的优势是什么?

  1. 对象构建器
  2. 统一
  3. 春天.NET
4

3 回答 3

3

它不在您的清单中,但考虑看看温莎城堡

支持工厂等设施的数量,以便注入工厂产品而不是工厂本身或用于注入代理或创建具有依赖关系的主机的 Wcf 设施。

有一个很好的流畅界面来连接各个项目,但最好使用约定来自动连接,这样您就不必列出每个组件。

其他一些不错的功能:

  • 自新修订版以来需要一个 dll。
  • 支持通过 SubDependancy 解析器注入列表和数组

是今年进行的一项民意调查,显示了受青睐的国际奥委会。Unity 似乎是顶级的,但这可能是因为它是 Microsoft 产品,Microsoft 研讨会默认会选择它。

于 2010-12-22T13:53:21.893 回答
2

我们在 ASP.NET MVC 项目中使用StructureMap并发现它非常有用。唯一真正的缺点是文档有限。自动装配非常好,如果您使用强约定来命名您的类和接口,它只需要很少的配置,例如:

 public interface ISomething { ... }

 public class Something: ISomething { ... }

在此之前,我们使用 Spring.NET,尽管我们放弃了它,因为它做了很多我们并不真正需要的其他(非 IoC)事情,并且需要复杂的 XML 配置来完成我们需要的事情。作为一个 IoC 容器,它运行良好并且非常灵活。

无论你选择什么,我推荐的关键是允许使用 IoC 的编码——我们在所有地方都使用接口。这确实有助于单元测试以及带来的所有好处。

MVC3 中的 Unity 东西看起来也很有趣,但还没有机会玩弄它。

于 2010-12-22T14:53:08.150 回答
1

我怀疑很多人使用过其中的两个或三个以上,而根据我对 Unity 和 Ninject 的有限经验,最终结果并没有太大差异。它们用于配置映射的选项略有不同,我确信一些更高级的功能有所不同,但这些可能很少使用。归根结底,IoC 容器的核心要求并没有那么复杂——你可以很容易地自己动手。

更重要的是您使用的是 IoC 模式,您选择的特定品牌可能对最终应用程序的质量没有显着影响。

对于它的价值,我会推荐 Ninject,因为它非常轻量级。

于 2010-12-22T13:51:51.893 回答