views:

189

answers:

6

I have been a developer for many years and have used several different programming languages. However, the one I love the most is C#. I think it and the .Net framework make development quick and enjoyable.

With that said .Net works, with MS full support, only on windows machines. I would love to natively use C# on android, iPhones, and other environments.

Why has Microsoft seemingly dropped the ball and restricted .Net only to windows?

+10  A: 

Have you considered using Mono? This is an open source version of C# which is available on all of the platforms you listed. It has a great amount of community support and many popular applications are written on top of it.

JaredPar
Mono has some, but not all MS support. Why can MS not take over Mono?
Patrick
@Patrick I doubt the Mono people want MS to take them over...
mathepic
+2  A: 

because MS developed Windows and their whole marketing strategy is built on it?

$$ runs the world, you know.

Beth
True, but at least they left the specs open so others could make their own runtimes.
FrustratedWithFormsDesigner
+2  A: 

They only support Windows, but it has been made available on Linux via Mono. It is also available on the iPhone via MonoTouch.

Dustin Laine
Climber104
+3  A: 

I don't think it's really MS that's the culprit here, though they may be part of it. Android doesn't support .NET not because MS doesn't want to, but because Google doesn't. The story is similar with Apple.

Brian Driscoll
@Brian - read @Beth's answer for the real reason Android does not support .Net. Google knows MS own the desktop - why would they hand them the mobile platform by supporting .Net?
Steve Townsend
right - that's my point - Google's not interested in supporting .NET, nor is Apple, because they have their own platforms. Sorry I didn't add that to my answer in the first place.
Brian Driscoll
+3  A: 

Probably because Microsoft doesn't want to directly support competing operating systems. They are however nice enough to let projects like MONO exist. They just aren't going to do the support for other platforms themselves.

They even released the source for .NET, I'd say they're fairly open.

Aren
I don't think Mono (or others) can just use Microsoft's code to "readily" make .NET 4.0 available on non-Windows platforms.
Dan
+1  A: 

.NET is Microsoft's CLI (Common Language Infrastructure) runtime. There are other runtimes that support CLI. There's Mono, which runs on Windows, Linux, and probably OS X too (I haven't really checked this). Actually, that's the only other one I know, but since the CLI language and platoform specs are open for all to see and read, anyone could implement their own runtime.

FrustratedWithFormsDesigner