Depending on how strictly you define complete
, there are currently no complete implementations of DotNet
publicly available. There are
several efforts to create one, in varying stages of completion:
- MonoProject: A project backed by the Ximian monkeys to implement the core DotNet technologies: CommonLanguageInfrastructure, class library and C#-compiler, plus a complete application stack based on OpenSource software, and compatible implementations of the proprietary MicroSoft classes like WindowsForms and AspDotNet. http://www.go-mono.com/ [as of June 2004, the mono project (now backed by NovellCorporation, thanks to their buyout of Ximian), just released version 1.0]
- DotGNU PortableDotNet: an implementation of the Common Language Infrastructure (CLI), more commonly known as ".NET", includes everything that you need to compile and run C# and C applications that use the base class libraries, XML, and Systems.Windows.Forms.. http://dotgnu.org/
- There are also rumours on other implementations of .NET for Linux, probably done by MicrosoftCorporation or companies contracted by Microsoft.
Cross-platform support in mono:
- JIT compiler:
- x86: Windows, Linux
- PowerPC: Linux, MacOsx
- Sparc: Solaris
- S390: S390
- All JIT-supported platforms
- plus: StrongArm?, HPPA, SparcV9
The interesting part of .NET lies in the cross-platform libraries. Once the compiler and tools are ported, the libraries can be used with them.
Unless Microsoft changes the implementation of said compiler and/or tools, of course. But they wouldn't do a thing like that, would they?
It doesn't matter if Microsoft change their implementation - the C# and .Net specifications are standards. The things to keep an eye on are the
non-standardised bits like WindowsForms and AspDotNet. Of course, if someone were to build competing GUI frameworks for .Net, there would be no need to track those moving targets.
is such a large endeavor that I don't see how it makes sense to try to replicate all of it.
's inter language use and extension of classes, unified loader and debugger and the like seem interesting. I would like to see a comparison of the underlying VirtualMachine
with the JavaVirtualMachine
. I also wonder if there is any good reason why the loading, debugging etc. features couldn't detect whether CLI or Java ByteCode
is being presented, and invoke the appropriate JustInTimeCompiler
I think the open source world could do better than simply cloning Web Forms and WindowsForms
. Why couldn't there be a single description of the ideal user interface, with hints for rescaling from desktops through handheld devices or dial-up phone prompts? (Combine Berlin with MozillaXul
and you're really close...) The business, database, XML processing functionality looks useful in a variety of environments.
Aren't the OS services too closely tied to Windows semantics to be generally useful in Linux, Palm, and EROS environments? Why in the world would the OpenSource
world want to attempt to replicate Passport?
Southern Storm Software's Portable.NET
Southern Storm Software is working on a portable implementation of DotNet
with Linux as their initial target platform. The primary goal of this project is to build a stable and portable interpreter for .NET platform binaries, together with a suite of open source tools to build .NET applications.
As of May 2001, Portable.NET is not really usable. A few simple utility programs seem to work. But if you point the C# compiler toward a simple HelloWorld
it does not produce any output files. So the download is mainly only useful if you want to contribute to writing a DotNet
compatible interpreter. But do not be discouraged by that.
The question is, then, what incentive do FreeSoftware developers have to contributing? With Kaffe, we've already made significant inroads into Java, which certainly gives us more that we can do
now, as opposed to what .NET
Another interesting question: How is Southern Storm's work being licensed under the GnuGeneralPublicLicense is going to mesh with MicroSoft's license for the portable libraries?
What can we expect from Microsoft?
Gartner Group analyst David Smith, in a piece on CNET on June 18, 2001 entitled "Why Microsoft is wary of open source" (http://news.cnet.com/news/0-1003-200-6291224.html
- But how far Microsoft is willing to go with open source appears limited, said Smith, who noted that while attacking Linux, the company promises to support the Unix variant through .Net.
- It's "a nice PR story for Microsoft to talk about the possibilities about .Net on Linux," he said. "It is true that Linux can participate in those .Net services, but don't expect Microsoft to provide any incentive or anything else that would make that possible."
Yes, this is not MicroSoft
's word, and we all know how analysts are often wrong (especially
the Gartner Group)... but it gives you pause, doesn't it?
And now MicroSoft
is making veiled threats against Ximian's Mono, implying there really cannot be even a clean-room implementation without violating MicroSoft
- The Mono project founders plan to exploit key .Net technology specifications that Microsoft has submitted to standards body ECMA. However, Goodhew said ECMA allows technology submitters to license their intellectual property, to retain control over implementation. Goodhew said Microsoft will publish licence terms covering "all the intellectual property we believe will be required to implement [the core dot-Net] standard" prior to the ECMA general assembly in December.
To me the bottomline is whether I have develop competitive (on cost, functionality) solutions using this platform. The next question is whether the DotNetForLinux
combination is going to last long enough for upfront costs (including opportunity costs) to be recovered. If the endusers who fund IT projects demand solutions and if the solutions meet other minimum criteria (e.g. security, robustness) then it has a chance. A very steep uphill battle because MicrosoftDotNet
is not a stationary target. Checkout WindowsLonghorn
in the news and the current DotNet
is looking obsolete already.