I received a couple of comments about my recent post on .NET vs. Java, and I thought I would offer a response. Enrique mentioned the issue of having a multiplatform shop, and having to deal with the fact you have multiple platforms. Lucian mentions cost, citing Linux + Java + Eclipse + JBoss as all being free.
Let us approach them in the opposite order. First, on Windows, once you purchase the OS, the application server and .NET SDK are free. There are a couple of free developer tools, including sharpdevelop and a c# plugin for eclipse. Second, you could conceiveable go the Linux+Mono route. Have I ever? No. Do I know any enterprises that are doing that? No. YMMV. At any rate, I don't think that the MS OS price or even that plus the cost of MSDN subscriptions for each developer is going to be the lion's share of the total system cost. Developers are pretty expensive by comparison.
As far as multiplatform enterprises go, yes, you have to do what you have to do. Does that mean that you shouldn't choose .NET when you are on MS? You will either need cross-trained developers or segmented developers. If you are going to throw multiple, existing platforms into the mix, then you probably already have to support more than just .NET and Java. You might have to support RPG on AS/400. The question is just as approachable, and you will probably end up aggregating related services together, and you will probably have picked a future direction for your enterprise already, i.e. you are going to deliver all future software on the XYZ platform using the ABC development stack.
To clarify my intent, I was mostly talking about a developer/designer experience. That is, choose your poison, and then tell how it was. I wasn't talking so much about the overall impact to an architecture or TCO, which I agree are both fair topics.