Nobody knows if it's allowed or not, as large parts of .Net are not a part of the ECMA standard. Mono people are trying to reimplement .Net for Linux, but this is basically the same thing as trying to reimplement WinAPI, which is what WINE is doing -- there's lots of guessing, Microsoft keeps changing things and introducing incompatibilities, so it is essentially a windows-only technology.
From wiki: The Microsoft compatibility stack provides a pathway for porting Windows .NET applications to GNU/Linux. This group of components include ADO.NET, ASP.NET, and Windows.Forms, among others. As these components are not covered by Ecma standards, some of them remain subject to patent fears and concerns.
You CAN use C# by sticking only to the international standard, and avoid any .Net extensions, but you are still under threat of patent litigation. And then there are many safer options, the first of all being Java.
Control. They are the only ones with a complete implementation.Why does Microsoft invent a language such as C#, instead of just using plain C or C++?
With C++, if you don't want to pay MS anymore, you switch to a different compiler, maybe even a free and open source one. With C#, you can't do it. The Mono guys are trying to offer C# users such a possibility, by reimplementing the standard from scratch, but many people in the Linux world don't feel comfortable depending on such technology.
Developing Linux apps for Mono/C# is almost the same as developing apps using Windows API and running it through WINE. It might work, but there are more free options that work just as well.
There are advantages to running your stuff over a VM. Android is doing it (Dalvik), and many languages such as Perl and Python are doing it.Just to be able to have a similar language such as JAVA, with their own extensions? I don't see the point in having something similar as JAVA, if you are not targeting multiple platforms.
There are also disadvantages, of course.


Reply With Quote


