【问题标题】:IoC comparisions [closed]国际奥委会比较[关闭]
【发布时间】:2023-04-03 21:30:01
【问题描述】:

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

  1. 对象构建器
  2. 团结
  3. Spring.NET

【问题讨论】:

  • 对 StructureMap 不感兴趣?
  • @Peter:我认为我应该在 web 项目中只使用一个 IoC。
  • 还是继续,对autofac不感兴趣?
  • @kenny:IoC 太多了,从没听说过这些东西。请建议哪个会更好?我见过使用多个 IoC 的项目会导致混乱。
  • 继续,对简单服务定位器不感兴趣?

标签: c# .net asp.net ioc-container wcsf


【解决方案1】:

它不在您的列表中,但请考虑查看Castle Windsor

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

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

其他一些不错的功能:

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

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

【讨论】:

  • 我将尝试 Castle Windsor 和 StructureMap,因为它们是最佳解决方案的首选(在链接中)。非常感谢。
  • @dhinesh 我很想知道你选择哪一个
  • 最初是和温莎城堡一起去的。
【解决方案2】:

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

 public interface ISomething { ... }

 public class Something: ISomething { ... }

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

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

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

【讨论】:

    【解决方案3】:

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

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

    我推荐 Ninject,因为它非常轻量级。

    【讨论】:

    猜你喜欢
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多