Narciso, on Software

6.11.2004

Lightweight Containers and Plugin Architectures: Dependency Injection and Dynamic Service Locators in .NET

For many years I went from a project with MS technologies to another one with Java/Unix technologies, playing at both fields all the time. In fact, my main employer during that time (Digital / Compaq) made me go through the full MCSE + Internet certification path, so I was a bit more attracted by the MS easiness and productivity tools.
But I must admit that Java and J2EE presented a much more attractive approach for object oriented solutions, both from the developing perspective and even more from the architecting one. For the last three years I've been playing almost only with Java and J2EE, achieving a good proficiency level in that field, but leaving behind the .NET solutions that rivaled with them.
Now I've been playing with MS .NET for a while, learning basically C# which I think is the best language at .NET for real oo developers, and has all the easiness that only vb previously had (visual form development, asp coding, etc).
I think that C# is "stealing" a good deal of Java developers, and many of them try to bring solutions that have been developed for Java to the .NET architecture. This is happening with Open Source solutions, such as Ant (NAnt) or JUnit (NUnit) to name a few.
I think this phenomena is giving a lot of many good things and practices to the .NET community, and that is great.
But we must not forget that MS designed .NET with the knowledge of what's wrong at Java and J2EE, and also with a huge deal of great innovative minds, and there're many things already resolved at .NET that have been done by independent parties in the Java field.
Just to show a good example: now there's been a lot of effort and discussion about Dependency Injection or Inversion Of Control pattern and lightweight containers. We know about frameworks for Java like Spring, and many people is already doing ports of this kind of solutions to the .NET platform, when that is already addressed at the core of MS.NET.
The best thing about this issue being implemented at the core of .NET is that is something you can rely on, something you absolutely know people will be able to use without downloading and installing third party solutions like Spring.

Please, read Daniel Cazzulino's blog entry on the subject. He explains how this is addressed at .NET with clarity, making reference to the good article by Fowler on DI/IoC:

Lightweight Containers and Plugin Architectures: Dependency Injection and Dynamic Service Locators in .NET

0 Comments:

Post a Comment

<< Home