0

是否有人为 .NET (C#) 创建了一个空的解决方案堆栈,其中包含使用多个项目的 DI 的 IoC 框架?几个月来,我一直在努力创建一个良好的可重用堆栈,它具有:

  1. MVC UI 网页应用
  2. 空 BLL 项目(稍后将添加真实实体)
  3. 空 DAL 项目(稍后将添加真正的 daab 类)
  4. 参考/搜索数据层
  5. 包括一个 IoC 框架
  6. 在 Home 控制器中使用 DI 的示例可以通过实体层一直到达 DAL 或通过接口到达所有引用/搜索层
  7. 不得在 UI 层设置任何具体类的硬引用

我已经尝试了几次,但我总是在#6 上挂断,而且我缺少堆栈结构中的一些基本内容。有没有人设法做到这一点并有一个示例解决方案来展示它的结构?我可以整天创建堆栈并添加一个 IoC 框架,但完全无法使其结构化,因此没有向 UI 层添加具体引用。对象的接口/具体解析还能如何进行?

当然,你们中的一些学者已经将其扼杀在萌芽状态,请与我分享一些启示:-)

ps - 我不止一次读过 Mark Seeman 的书。我理解组合根的概念......但从未见过在 NTier 解决方案中使用它,并且无法成功实施该理论

我正在寻找的是一个充实的多个项目的解决方案堆栈,可以用作开始的基础。一种成功实现组合根的方法,可用于通过做而不是告诉来教授 SOLID 原则。一个将这一切变为现实的解决方案。请参阅此问题以供参考。

4

2 回答 2

1

我的 Shuttle Wiki FOSS 包含您所追求的一些元素:

http://shuttlewiki.codeplex.com/

尽管并非每个问题都在其自己的项目/程序集中,但我发现除非您真的要在其他地方使用相关程序集,否则将它们分开是不值得的。话虽如此,仍然很容易将它们分开,因为已经注意保持关注点脱钩。

浏览了一些评论。我的观点是,不应使用任何项目结构或技术来试图阻止或保护其他开发人员使用某些类。初级开发人员必须在某个阶段学习绳索,一些快速的代码演练会发现与您想要实现的目标不一致的编码。

于 2012-05-16T04:18:48.427 回答
0

看看我的:使用存储库模式,ninject,实体框架 6,...

https://github.com/mesuttalebi/NTierCSharpExample

于 2014-12-18T13:24:46.367 回答