Inversion of Control with .net

2019-02-07 04:11发布

It's rare that I hear someone using Inversion of Control (Ioc) principle with .Net. I have some friends that work with Java that use a lot more Ioc with Spring and PicoContainer.

I understand the principle of removing dependencies from your code... but I have a doubt that it's so much better.

Why do .Net programmers not use (or use less) those types of frameworks? If you do, do you really find a positive effect in the long term?

7条回答
女痞
2楼-- · 2019-02-07 05:04

Lots of people use IOC in .NET, and there are several frameworks available to assist with using IoC. You may see it less in the WinForms side of things, because it's harder to just let the container wire everything together when you are designing forms in Visual Studio, but I can say that for server-side .NET applications, where I work at least, IoC is used very successfully.

Why use it in .NET? For the same reason you use it everywhere else. The 2 biggest things I like are:

  • Designing for IoC tends to enforce good coding practice - designing to interfaces, low coupling, high cohesion. This also leads to classes that are very easy to unit-test.
  • System configuration can often be changed without recompiling.

Some other posts discussing the different IoC/DI frameworks available for .NET:

查看更多
登录 后发表回答