Microsoft like implementing their own versions of popular open-source frameworks and assemblies, for example:
- Microsoft’s MVC Framework vs MonoRail
- Microsoft’s Unity IoC container vs Castle Windsor / Spring.net / Ninject etc
- Microsoft’s VS Unit Test framework vs nUnit (and various others)
Questions:
What else has Microsoft ‘borrowed’?
Which are better in each situation and why?
What are people’s attitudes towards the official Microsoft stuff vs the ALT.NET versions?
What do you think is next to be taken under the Redmond wing?
EDIT Ok, instead of which is ‘better’, which do you prefer to use as a developer?
This is completely subjective as what will be ‘better’ for one person won’t necessarily be better for another. One difference between a Microsoft implementation of an idea/technology/product and an open source one is that Microsoft has the ability to devote full time resources to the project while open source generally can’t.
There is also the question of support. Most open source projects don’t come with any type of support other than from the development community. That isn’t always a bad thing as you can sometimes get better support like this than from an official (dedicated) support group.
There are many reasons Microsoft does this, one of which is to own a piece of the market in that particular space and drive more customers to their solution rather than a third-party one. Another reason is actual customer demand.
Some other products Microsoft has ‘borrowed’ from open source projects: