【问题标题】:Dependency Injection framework依赖注入框架
【发布时间】:2014-09-06 10:48:36
【问题描述】:

我需要在我的 Web 应用程序中实现 DI。这不仅是 Web 应用程序,而且还支持业务层类(单独的项目)和数据访问层类(单独的项目)。最好的工具是什么,我知道 MVC 内置了一些东西,但我的业务逻辑层和数据访问层没有使用 MVC。

【问题讨论】:

  • MVC目前没有内置任何依赖注入框架,你“知道”错了。

标签: .net dependency-injection


【解决方案1】:

首先,我建议您阅读有关依赖注入的更多信息。它不是一个框架(尽管有依赖注入框架),它是一种设计模式。您可以在没有任何框架的情况下实现 DI。该框架只是为您提供了更多功能。

其次,MVC 不提供 DI 框架,尽管它确实具有将框架引入 MVC 的挂钩。

第三,依赖注入框架是在应用程序级别配置的(在您的情况下是 MVC)。你的业务和数据层是独立的项目并不重要,它们仍然被你的应用层使用,而应用层是必须有 DI 框架的那个,因为所有的对象都是从那里创建的(这被称为组合根)。

您可以使用任何您想要的 DI 框架。没有“最好的工具”。他们都做同样的事情,只是以不同的方式做,所以归结为个人喜好。

【讨论】:

    【解决方案2】:

    我完全同意 Erik Funkenbusch 的观点。 DI 不是工具,您应该从应用模式开始,而不是使用工具。如果您开始使用工具而不应用模式,您将成为in worse place than you started

    也就是说,.NET 有很多 DI 容器,但前 6 个是:

    1. Autofac
    2. Ninject
    3. Castle Windsor
    4. Unity
    5. StructureMap
    6. Simple Injector

    但您可以在 this list 上看到更多内容。

    【讨论】:

    • 谢谢,我知道我需要先设计它,我想要的只是一个可以帮助我实现设计的工具。
    • @user3547774:该工具无助于实现设计。只有您可以实施设计。该工具仅有助于保持您的组合根可维护,但只有在您根据 SOLID 原则设计应用程序时才能做到这一点。
    猜你喜欢
    • 2010-09-14
    • 1970-01-01
    • 2016-08-19
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2021-08-13
    • 1970-01-01
    相关资源
    最近更新 更多