Username or EmailPassword
let's try to give an answere, even if it doesn't make sense to answere the same questions again and again.
Let's focus on one example you have mentioned: System.Collections
First let me say that we are talking about software patents. Software patents has nothing to do with a specific implementation, software patents covers ideas completely independent from implementations, implementations are covered by copyright.
So look at System.Collections that are all basic things: lists, bit-arrays, hash-tables, and so on. Let's assume that MS has used a great idea to implement the System.Collections.Stack and have a patent on this idea. The Mono guys have implemented a System.Collections.Stack too without looking at the MS code. So we have two options:
1. They have implemented the "MS idea" which is patented.
2. They have implemented the stack by avoiding the "MS idea"
If option 2 is true we are done, no problem.
If option 1 is valid we have a problem if MS comes to us and says that we are using their patent. Than we have again two options:
1. We will find another way to implement the stack, than everything is fine.
2. We will not find another way to implement the stack.
If point 1 is true, the problem is solved.
If point 2 is true, we and all other programers have a problem. Because situation 2 would mean, that there is no way to implement a stack without violate a patent. This would mean that every stack, never mind if he is implemented in c#, python, c c++, java or any other language would violate the MS patent.
I hope you can see the point. In all the .Net libs there is nothing which is that new that there was nothing comparable in other language/toolkit libs. So either there is a way around the patent, you can contest the patent or everyone who do the same thing violate the patent.
And beside this few MS patents there are thousends of other patents were you have exactly the same problem.
Yes, it's a crappy situation but that's the situation for every programmer if he writes more than just a "hello-world-app" whether he uses c#, java, c++, c or any other language.