当前位置:  开发笔记 > 后端 > 正文

使用依赖注入组织ASP.Net MVC解决方案的最佳方法是什么?

如何解决《使用依赖注入组织ASP.NetMVC解决方案的最佳方法是什么?》经验,为你挑选了1个好方法。

我在一个新的ASP.Net MVC项目的早期开发,我使用这个项目进入DI.我很确定我会选择结构图,但这不是我要问的问题.我想弄清楚的是如何最好地组织我的解决方案.单元测试项目和模型都可以获取配置文件来映射它们的依赖关系,还是有一个类来统治它们?

另外,在我走得太远之前,还有什么新手陷阱可以避免吗?

非常感谢,所有.....

更新 我应该补充一点,当我说"组织解决方案"时,我并不是指文件/文件夹的数量等,而是如何构建与DI相关的类.特别是,如何管理引导程序.我可以看到我的言语不好会导致混乱.



1> John Farrell..:

如果你是唯一一个从事这个项目的人,我会先做对你有意义的事情.没有比你发现不直观的目录或项目结构更糟糕的事情.BaseController类是\ Core \文件夹还是\ Controller \文件夹?我亲自看看控制器,但有些人发誓它应该在\ Core \或\ Bases中.

一个新手陷阱认为你可以用错误的方式组织你的代码,并以某种方式反映了项目的成功.我见过有30个文件放在一个文件夹中的项目和其他有30个文件夹有20个文件夹的项目.

第二个新手陷阱是忘了其它语言相比,你有真棒智能感知,代码导航工具,并从Visual Studio的重构支持的好处.你还有一个编译器,它使错误放置文件远没那么痛苦.如果你把某些东西放在"错误"的位置,那么你可以随时找到它并将它拖到需要的地方.

老实说,我现在正在研究一个项目,我甚至不确定某些类在我的文件结构中的位置.转到定义/声明是我经常使用的键盘快捷键.因为只有我使用代码这很好.如果我不得不在项目中添加另一个开发人员,我可能会清理一下.

我个人倾向于将Interfaces的实现类型放在同一个文件夹中.IPaymentGateway与AuthorizeNetGateway和PaypalGateway位于同一文件夹中.如果我无法在解决方案资源管理器侧栏中一次查看该文件夹中的所有文件,则将所有网关文件移动到\ Gateway \文件夹中.

随着依赖注入添加到混合中,我建议你只关注命名空间爆炸.你可以做的最糟糕的事情是使用声明和别名长时间搞乱你的bootstrappers和文件.

ForRequestedType

比...更干净

using KevDog.Models
using Customer=KevDog.Models.Customer

要么

ForRequestedType

另一种避免此问题的方法是在命名时明确:Customer,CustomerViewModel,CustomerController,CustomerDataRow,CustomerView

对于TDD,您几乎必须有两个bootstrappers来管理您的具体类型.你真的不希望你的单元测试使用AuthorizeNetGateway:IPaymentGateway,而不是StubGateway:IPaymentGateway.

现在我也是DI的新手,所以我倾向于使事情变得非常简单并反映101级教程和文档.只有在特定情况需要时才能使用基于构建配置的动态注入,并且您确切知道为什么要这样做.

我通常也保留MVC应用程序的默认结构.它的代码与99%的教程和视频相同,更容易.

希望这可以帮助.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有