ALT.Net and the Enterprise

time to read 3 min | 545 words

Simone Chiaretta has a post that I strongly disagree with. The two parts that sum the parts that I most vehemently disagree with Simone are:

imagine you have an Enterprise-level project, with 100 developers, how many of them are likely to grasp what IoC is?


if you have 50 developers in your team you can't use MonoRail or Windsor or even the kind of main-stream NHibernate, because 40 of them will not know what you talking about.

There are two reasons that I disagree, let us start with the one that had forced me to sleep on this post rather than send it immediately. The underlying assumption here is that "Morts can't take this stuff". It annoys me a great degree, because this is both arrogant and baseless. Those "alternative" concepts that we are talking about are not born of thin air, they are the de-facto standard of operation in many shops.

Let us focus for a second on the Java camp, shall we?

I would be greatly insulted if anyone tried to claim that Java developers are intrinsically better than .NET developers. But for some reason, those concepts - IoC, MVC, OR/M - that Morts can't ever figure out, are not only popular there, they are they default choice in many cases. And they are the choice for large, Enterprise projects.

So, what is the difference between the two? Why can Java people scale those concepts to large teams and .NET people can't?

The answer is that there is not real reason except a common misconception about the capabilities of developers to learn & grow. By assuming the "they can never understand that" attitude, you are limiting what you can do and form an elitist view of your developers.

I am pretty sure that this isn't what Simone intended, but this is how I view the general sentiments in that direction.

Now, I mentioned that I have two reasons to disagree. The second part is my own experiences working with those tools & concepts. All my projects for the last 2.5 years or so have been using IoC and OR/M, the last two are using MVC as well. I don't work alone, and I work with people of varying degrees of knowledge and interest in the technology for the sake of technology.

The reason for doing that is simple, it works, and it helps produce successful projects. I have an answer to "How does it make my job easier?" and I have successful projects to back this up.

You can see what kind of code we are writing right now, IoC, OR/M and MVC are easier than the other way around. And it is my responsibility to make sure that (a) the developers understand what is going on but (b) they shouldn't have to deal with it on a day to day basis. Properly used, IoC is completely transparent to the application. OR/M is not transparent, but it is very easy to use, and I want to split the code between the controller & the view.

So yes, you can scale this up to hundreds of developers. In fact, I can't really imagine other ways to manage this complexity without using those concepts.