Regarding my question about where .Net is at with cross-platformness, as expected, someone who seems to know shit wrote in with an answer. More specifically, Bryce Yehl, who points us to this O'RellyNet piece from last June, Microsoft Plans Shared Source .NET and comments:
Thanks for the analysis, Bryce. Guess we'll wait and see.
My read is that the BSD release would provide a runtime VM and C# compiler, significantly less than a full DotNet environment. Assuming that Miguel de Icaza doesn't get whacked by the GNOME people, the Mono project will provide full DotNet on Linux and elsewhere.
Most noteworthy is that they are implementing the project in C# as much as possible. The runtime itself appears close to completion. The class libraries are what really matter, don't hold your breath. If they ever manage to catch up, you "compile-for-DotNet" without regard to where it will run. There's also DotGNU which, in typical FSF fashion, has far broader goals than providing a full DotNet environment (the usual Freedom BS, various framework expansions, and an unwillingness to bootstrap off of Microsoft's compiler). Given the history of HURD, GNUstep, and other large FSF projects, don't expect a complete 1.0 release until DotNet is sufficiently obsolete -- if ever.
Thanks for the analysis, Bryce. Guess we'll wait and see.