zaq*_*zaq 4 .net c# asp.net dependency-injection asp.net-mvc-3
我正在寻找有关设计新的ASP.NET Mvc项目的好方法的建议.它中等大小,结构相对简单.我最初使用Spring.Net将我的服务对象连接到正确的构造函数,但现在管理层告诉我,Spring.Net或任何其他IOC容器不能在我们的环境中使用.
在没有DI的情况下找出一个很好的方法来解决这个问题我有点麻烦.我希望能够以允许控制器和服务之间的低量耦合的方式将服务实现分配给控制器,并尽可能地限制各个服务实现上的控制器.我想我的问题归结为这样一个事实,我不确定我应该在MVC模型中手动连接我的应用程序.
有什么建议?
由于您使用的是ASP.NET MVC 3,因此可以编写自定义依赖项解析程序.当然,您仍然会设计控制器在其构造函数中使用接口,以减弱层之间的耦合.然后在自定义依赖项解析器中,为了满足强加给你的荒谬要求,你必须手动说当你有一个ISomeService
你返回的实例SomeServiceImpl
.你知道,那些反对容器和DI框架的东西已经为你做了.所以你基本上必须重新发明一些轮子.顺便说一句,Ayende在博客中写了关于如何用15行代码构建自定义IoC容器的方式,但当然这并不是你应该做这样的事情的原因.
强加这种要求的人应该面临审判并被判处永远不必接近申请设计.强加这样的要求表明在设计应用程序方面缺乏对良好实践的了解.在给公司带来进一步的损害之前,应该告知这些人.
所以简单地解释那些通过重新发明轮子有2个错误的人:
在一天结束时,您将按计划延迟发送应用程序(因为您将浪费时间编写管道代码),更糟糕的是,您将发布一个包含潜在错误的应用程序.
结论:昂贵且有缺陷的产品.你的管理层肯定已经失去了理智:-)
结论2:使用现有的DI框架.管理层甚至不会注意到,因为他们似乎没有通过强加这些要求来理解申请的技术方面.
归档时间: |
|
查看次数: |
1345 次 |
最近记录: |