<p>Microsoft like implementing their own versions of popular open-source frameworks and assemblies, for example:</p>

<ul>
<li>Microsoft's MVC Framework vs MonoRail</li>
<li>Microsoft's Unity IoC container vs Castle Windsor / Spring.net / Ninject etc</li>
<li>Microsoft's VS Unit Test framework vs nUnit (and various others)</li>
</ul>

<p>Questions:</p>

<p>What else has Microsoft 'borrowed'?</p>

<p>Which are better in each situation and why?</p>

<p>What are people's attitudes towards the official Microsoft stuff vs the ALT.NET versions?</p>

<p>What do you think is next to be taken under the Redmond wing?</p>

<p><strong>EDIT</strong>
Ok, instead of which is 'better', which do you prefer to use as a developer?</p>

In the case of Unit Testing I've heard the answer from a Microsoft official. In fact, if I recall correctly, Microsoft's feature is even based on the NUnit code base.
The reason for copying this particular OpenSource product (and others, I've been told) is that customers want this. At first, this might seem like a cheap pretext but I can actually imagine some corporate customers who prefer it this way. Additionally, the Microsoft employee claimed that it's easier for Microsoft to provide customer support if they implemented the program themselves because they can take an extended responsability for the source. If that's true, OpenSource adoption has a long way to go. :-(