Microsoft is doing a tremendous amount to promote code sharing and create communities at the moment, so I think it’s disingenuous to say that it’s all about vendor lock-in (Daniel Lehmann). Can I remind you that C# and portions of the .NET Framework are open standards, free for anyone to use? I believe that C# and .NET Framework have raised the bar in many ways, and the stuff on the horizon (parallel extensions, Dynamic Data etc.) is very promising. Of course, if you don’t want to use C#, you can use pretty much any other language you want to target .NET. I don’t see Sun giving you that opportunity.
As for reinventing the wheel by coding up their own source control and team management tools, well I can see where MS is coming from too. If they had gathered together a pick-list of open source apps, including NUnit, NAnt and so on and integrated those into Visual Studio they would:
a) Have been accused of profiteering
b) Have been accused of not innovating
c) Have integrated software that they already had alternatives to
d) Have been criticised for including tool X instead of tool Y
You can integrate whatever tools you like by using MSBuild or the various source control add-ons, so I don’t see what the big deal is. If you don’t want to pay for Team Suite, then buy Professional for a few grand less and add and remove whatever features you like from the open source community. Sure, you’re not going to get the integration, but that’s the price you pay.
I see MS regarding open source and community contributions cautiously, but progress is being made. Others have mentioned the dynamic languages like IronPython, but teams working on Dynamic Data, ASP.NET MVC and other new additions are actively seeking out feedback from the community in order to provide the best products (which will be free in .NET 3.5 SP1). For these projects, many hooks are being included so you can plug in whatever support frameworks you currently use. They are actively working with open source teams to enable this.
Of course MS have also released the source code to their .NET compilers and tests in the form of Rotor to the community and have, with Visual Studio 2008, enabled you to debug into the full Framework source code (including developer comments and so on). Why isn’t this recognised? This isn’t altruism, it’s a corporation responding to the open source community, doing their best to accommodate developers who really should be more thankful for what they’re getting.
Finally, you can get Visual Studio 2008 Express for free.