Model view controller MVC与依赖注入

Model view controller MVC与依赖注入,model-view-controller,dependency-injection,Model View Controller,Dependency Injection,如果考虑依赖注入,是否有人可以总结或列出每一层中的内容类型,以及MVC类型设计中有哪些层? 我还没有找到任何干净的图表,可以帮助我在不写整本书的情况下,更详细地了解自己的位置或尝试 我已经做了3年的windows窗体应用程序(包括sql server数据库设计),这是我唯一的工作职责,没有人比我更有经验。我一直在尝试将事物分解成清晰的层次,尽可能多地根据演示、业务和数据库自己找到解决方法 然而,从阅读示例来看,业务逻辑应该是应用程序的核心,并有一个单独的层指向特定的数据库实现。因此,ui进入表示

如果考虑依赖注入,是否有人可以总结或列出每一层中的内容类型,以及MVC类型设计中有哪些层?

我还没有找到任何干净的图表,可以帮助我在不写整本书的情况下,更详细地了解自己的位置或尝试

我已经做了3年的windows窗体应用程序(包括sql server数据库设计),这是我唯一的工作职责,没有人比我更有经验。我一直在尝试将事物分解成清晰的层次,尽可能多地根据演示、业务和数据库自己找到解决方法

然而,从阅读示例来看,业务逻辑应该是应用程序的核心,并有一个单独的层指向特定的数据库实现。因此,ui进入表示层,controller只是提供了一个抽象/映射层,用于描述ui在模型层可以做什么,业务逻辑进入模型层,数据库/linq到sql进入数据库层。其中所有内容都可以依赖于模型层,但不应该依赖于任何内容

要使您能够将心脏从X类型移动到:

  • Windows窗体
  • Asp.net
  • Asp.NETMVC
  • 银光
  • 还有别的吗
对吧?4层/项目方法是否涵盖此类内容?如果添加TDD层,我想应该是5。

我并不反对读书,但我已经有很多书要读了(3本在家,1本在工作,3本订购,1本在大学)。这两种方法都有响亮的支持者,但似乎在总体设计上存在冲突

  • 极限编程
  • windows窗体正在运行
  • 高效程序员(75%完成)
  • 程序员用户界面设计(完成90%)
  • -在我从代码营得到的工作中
  • 单元测试的艺术- NET中的示例 罗伊·奥舍洛夫
  • java操作系统概念-计算机科学硕士课程
  • C#深入(尚未发布)
  • 面向现实世界的函数式编程(尚未发布)

    • 我认为此链接将涵盖您的大部分问题:

      不可能比较MVC和依赖注入


      MVC中经常使用依赖注入,使控制器和视图独立于数据的持久化方式。

      我认为您试图一次理解太多了。例如,“TDD层”毫无意义。DI和MVC只存在切向关系。DI没有指定业务逻辑应该位于哪个层

      从简单开始。一次研究一个概念。在尝试将你的知识应用到任何地方之前,先用一种语言测试一下你的知识。你的阅读清单上有一些很棒的书;完成其中的一些。单元测试的艺术将使您对TDD有一个基本的了解;它还涵盖了依赖注入的实际用途,但没有深入探讨。极限编程系列将更详细地介绍TDD

      我建议阅读设计模式(不要从四人帮开始——也许吧)和一般设计原则(这是一个好的开始)。也许其他人可以为学习分层体系结构提供参考


      预计这需要一段时间。期待在你的职业生涯中继续学习。

      @orjan-你能总结一下它的答案吗?我正试图对这篇文章进行分类,但我对NHibernate、WCF或asp.NETMVC没有任何经验。此外,它将关于什么是协调层的讨论推迟到了其他3本书中,而不是详细讨论。@orjan-我不认为我在比较这两本书,正如问题标题所暗示的那样,我试图想象它们在任何应用程序架构中一起使用时会如何配对。具体来说,依赖注入书中说,业务逻辑不应该有其他依赖项,因此您可以将其移动到同一“应用程序”的其他形式中。这是有道理的,但是MVC中的模型似乎希望您的业务逻辑与持久性/数据库位于同一层。这是正确的还是4层/组件布局会更好?@Maslow:业务逻辑确实在模型中,但模型本身可以(通常应该)分层……并且扩展我之前的评论-视图和控制器只看到模型的公共界面。内部工作(持久层、支持类等)对它们是隐藏的。+1因此将有一个模型、视图和控制器,但是,模型可能是多个程序集(或层,具体取决于您如何看待它)。@Maslow:当然。但是,多个图层可以位于单个部件中。