Open source in the .net world

June 8th, 2006

A quote from a post in theserverside.net:

But on top of the MS stuff reported here (for good reason) TSS.Net also posts about what happens in open source .Net: log4net, nhibernate, ibatis.net (hint hint:). However, unlike in Java, there seems less enthusiasm so far for the word “open source”. Every time I walk into shops and bring in OS libraries I get asked why log4net over the logging application block and why nhibernate over ado.net and why nvelocity over asp.net and what is that dependency injection castle thing - quite honestly, it pisses me off to always have to explain and I wish I’d be back on some Java project. And on the other side, the Java snobs always think that everything .Net is so Microsoft-evil and using it is evil and I go to hell for using VS.Net instead of Eclipse and IntelliJ (or X-Develop for that matter).

I couldn’t agree more. There are lots of bright minds in the .net world, for different reasons, but most of them are still tied to the “thinking standards” that MS dictates. Most people heartily involved with open source in the .net land came from Java, and have to learn to deal with this attitude.

I remember back in 2003/04 when I was involved in big projects in Java. The customer’s requirements were very clear: PostgreSQL, JBoss and Struts. The open source triad. Aside the fact that Struts is the worst thing that happened to our generation, this non-existent barrier for open source is awesome! On the .net land you have to face a weird look.

Ayende has blogged about his experience with Enterprise Library 2. I confess that I’m using the Data Application block as the application I’m working on relies on stored procedures to get the data. No, it wasn’t a design decision because we are performance freaks. We’re accessing an external system that is only accessible through stored procedures. The Ent Lib data block allows me to write less code, that’s true, and that’s why I lobbied for its use. When we installed the system in a windows 2003 server to make it available to QA, the “instrumentation” block, which btw I didn’t ask for, insisted on register events into the Event log, which it couldn’t, so .net threw a SecurityException. I fought with it for a day or two (yes, giving permission on the register keys and so on) and at the end commented the instrumentation code out.

Is this an enterprise ready product?

Tom, the ent lib product manager think it is. In fact he commented in Ayende’s post:

First, we have never suggested that any or all blocks in EntLib should be used in every enterprise application. We talked to a lot of customers to understand what kinds of challenges they were facing, and we know that many of the features are useful to many customers. But if you have different requirements, it may not make sense to use the blocks at all.

He goes even further:

Object Builder: Again, this isn’t a block but something we built to support our code. While building both EntLib and the Composite UI App Block we realized the code could benefit from dependency injection approaches so we built some code to support it. Use it directly in your apps if you like it, ignore it if you don’t care.

Few months ago, before switching the Castle forum to phpBB, the following message was posted:

We’ve been developing our application with Windsor IoC. The company we are developing our application for has hired some M$ consultants who are sugesting that we use ObjectBuilder instead of Windsor for our application. I have no idea about ObjectBuilder, but I just received a mail that we have to defend our use of Windsor vs ObjectBuilder tomorrow. I really like Windsor but have no idea of how it stacks up with ObjectBuilder. Please, I need some pointers on how to defend our use of Windsor vs ObjectBuilder… soon! Thanx.

So MS guys, don’t try to play possum. We know ya.

I’ve contributed with a few articles for a book that, hopefully, will help in changing this perception about open source. For the good or for the bad.

Oh, and if you’re wondering what has happened to the forum poster:

I’m sorry I haven’t responded, these have been tough days with all the deadlines we have. The good news is that we were able to maintain Windsor IoC in the development we had already delivered. We were able to do this based on a tecnicality, part of the requirements stated we had to develop for .Net 1.1, ObjectBuilder is supported by .Net 2 >. The MS consultants have proposed the use of .Net 2.0 for all new development (along with whatever MS sells), which means that our new development will most likely use ObjectBuilder. We have gained credibility within the company we are working with, and we will be proposing Windsor as an alternative. I’ll keep you guys up to date on how things turn out. Regards.

It’s always good to see a happy ending ;-)

Categories: Castle | Top Of Page | |

One Response to “Open source in the .net world”

Technical Related Notes » Blog Archive » links for 2006-06-14 Says:

[…] Zen and the art of Castle maintenance » Archives » Open source in the .net world Windsor (tags: .net opensource) […]

Leave a Reply