各位在net中对依赖注入看法如何?在实际项目都有哪些体会呢?关注的框架都有哪些?都用着哪些容器呵呵,学习讨论。不胜感谢。。

解决方案 »

  1.   

    只因经常有人说做.net大都不了解依赖注入,我希望这个说法是错的。。
      

  2.   

    IoC还是依赖注入,都是为了满足面向对象设计的DIP,依赖注入所注入的对象通常是个可变因素
    某客户类只依赖于服务类的一个接口,而不依赖于具体服务类,客户类只定义一个注入点。在程序运行过程中,客户类不直接实例化具体服务类实例,而是客户类的运行上下文环境或专门组件负责实例化服务类,然后将其注入到客户类中,保证客户类的正常运行。
    如Spring.NET中的IoC部分、Unity等
    http://www.martinfowler.com/articles/injection.html
      

  3.   


    AOP纯粹是没事撑的。它是对设计模式的嘲讽,AOP发明者为了证明23个设计模式中有将近20个都是多余的,创建了AOP。这就好像用javascript来说明java、c#是多余的一样。.net早就remoting中就有完善的对象注入和代理机制,任何人可以注入,但是微软也没有往这个上面宣传什么,因为remoting是为了实用才这样设计的,而不是玩什么AOP。微软早在20年前就精通事件驱动编程,因为需要开创windows、控件编程的先河。可是也没有宣传什么AOP空洞思想。编程这可靠地使用事件委托,使用INotifyPropertyChanged、INotifyPropertyChnaging、INotifyConnectChanged、DependencyProperty等等机制,只有我开放了那么客户端才能注入。这就好像是:有拆箱装箱之说、有编程清晰性之说、有编译时检查bug之说,所以我们使用强类型编程。如果此时我们说:“既然有反射了,所以从此后不需要强类型编程,一切类型的数据都用字符串来搞什么‘动态编程’了!”,这不就是扯淡么?这种玩法可作为没事撑的研究性的编程风格,而不可能用来支持大规模的商用。.net设计师懂得具体问题使用委托,只有一个代码让别人插、定一个业务上明确的事件参数时才让你插,而不是你想破坏别人的代码就随便A了它。
      

  4.   

    说是“神似”实际上还是触动了我。依赖注入,这种“二倚子”看不清不难不女的技术不应该拿替代真正的好男人的技术。研究AOP,顶多是玩儿。
      

  5.   

    sp1234说得好,:),不过对于AOP的是非当然是仁者见仁,反射不代表AOP,强类型也不定微软才有,它们更像是不同人对编程的理解,对于事物的好坏往往要从辨证的角度去评价
      

  6.   


    我感觉AOP不是为了AOP而AOP的吧?,也就是解决问题的一种方法而已,他的出现不是为了证明某些设计模式是多余的,不用反应太强烈,不能说是“二倚子”吧,呵呵,从“二倚子”这个词。可以看出来应该是老乡,哈哈,因为说“二倚子”的人不多,恩,连我自己都好长时间不说了。