【问题标题】:.Net dependency injection on debug build using nant.Net 使用 nant 进行调试构建的依赖注入
【发布时间】:2009-05-26 01:05:43
【问题描述】:

我有一个使用 vb.net 2.0 和 nant 构建的相对较小的应用程序。它是一个调用外部 exe 以生成一些输出文件,然后处理这些输出文件的应用程序。

我已经为 exe 构建了一个接口,我已经创建了一个存根实现和真正的实现,我想做的是使用 nant 来创建应用程序的调试版本,它调用存根实施,或创建将使用正确实施的应用的 PROD 版本。

我怎样才能做到这一点?

另外,我没有能力更新到较新版本的 .net,所以你知道 :)

谢谢! 标记

【问题讨论】:

    标签: .net vb.net dependency-injection nant


    【解决方案1】:

    您是否考虑过使用#if DEBUG 预处理指令?您可以执行以下操作:

    object myDependency;
    #if DEBUG
    myDependency = new Stub();
    #else
    myDependency = new Actual();
    #endif
    

    只是一个想法,但如果它是一个相对较小的应用程序,它是一个不错的、简单的解决方案,不需要太多麻烦。构建调试配置文件时,会自动设置调试编译器选项。构建发布配置文件时,调试编译器选项不存在。除了简单的应用程序之外,我会说使用 IoC 框架......比如 Ninject。它美观、简单、轻巧……应该适用于较小的应用程序。

    【讨论】:

    • 不错的主意,考虑到它是一个小应用程序,我现在可能会这样做
    • 真的有人有我可以阅读的参考资料,可以告诉我如何使用 nant 进行 DI 吗?比如运行单元测试、产品/开发构建等?我似乎找不到太多关于它的信息。
    • (意味着将此添加为评论,而不是答案)是的,#if DEBUG 是您的朋友。尤其是在使用网络并拥有多个网站版本(开发、登台和生产)时。
    • 我认为使用 Nant 或 MSBuild 等进行 DI 的最简单方法是使用可配置的 IoC 框架(如 Castle Windsor),并使用 Nant 修改 IoC 配置文件或选择一个一组可能中的一个。 DI 确实是一个编码问题,而不是构建问题……如果您尝试专门使用 NAnt 执行此操作,它可能会导致一些烦人的问题。现有很多优秀的 IoC 框架...我建议利用它们,并使用 Nant 来做它最擅长的事情(我确信有 nant 扩展来支持配置修改。)
    • 我同意 nant 是一种构建工具,但我是那种喜欢将东西放在一个地方的开发人员。但我想我也可以有一个测试配置文件和一个 prod 配置文件。
    【解决方案2】:

    目前有很多 DI 框架,而且还会有更多。然而,它们(我所知道的)都不是“构建工具”。如果你需要一些快速的东西,比如 Funq(1) 会做得很好,或者 ProS(2) 完成后就可以了

    您可能想阅读 Daniel Cazzulino 在 Funq(3) 上的文章,他在其中对几个 DI 进行了基准测试

    我会在上面链接,但还不允许

    【讨论】:

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