Somewhat like this has been question before, and I answered
A great thing happened. Microsoft
placed the C# and the CLI spec under
the "Community Promise", this means,
roughly said, they promise they will
never sue you from using or
implementing this standard.
Linq is a different thing. It's partly
a C# language feature using the
functional programming framework
subset System.Linq. The C# side is
safe, but I don't know about
System.Linq.
I'm a happy Mono user, and even if
Microsoft sues about some parts of the
framework, the OSS world will quickly
write a new framework on top of the
CLI spec, which is now free of danger.
Microsoft places CLI and C# ECMA
Standard under Community Promise
Miguel de Icaza commented on this on
his blog: From Microsoft: C# and CLI
under the Community Promise
Update: If you still worry about the parts of .NET called ADO.NET,
ASP.NET and WinForms, Jon Pryor has
written an in depth article about why
one should not refuse from using the
Mono implementation because of patent
dangers: How To Defend Against
Software Patent FUD
To be more specific concerning your plans, not all parts of dotNet are under this promise. And some parts are open source already, take the DLR. But I shouldn't care too much, as long as your code is modular. This because if Microsoft does sue for example Mono's implementation of ADO.Net, you can switch to a different provider.