Novell has announced the release of Mono version 1.2, a new version of the Mono project to create an implementation of the Microsoft .Net Framework for open source. Mono 1.2 enhances the open-source effort and is a major step toward compatibility with the .Net Framework 2.0, Novell officials said. Novell announced the new version on Nov. 9 at the Microsoft TechEd Developers conference in Barcelona.
The implementation of the ASP.NET 2.0 features is far behind the .NET implementation (no webparts, no masterpages). I have dealed with Mono for 2 years and was usually really disappointed because I could never use the features under Linux that were available for .NET under Windows. Furthermore the .NET/Mono source is heavily influenced by developers with a Windows related coding style: They never think of interoperability with other operating systems and understand the term “interoperability” as the interoperability to other Windows systems. The most projects were developed under MS VS 2005 so you can not open them with monodevelop easily.
Since Java became (will become) open source there is absolutely no reason for me to use Mono as a platform for my website (CMS development). Java is a mature platform independent framework that is well implemented under Linux – Mono definitely not: Bad performance and incomplete feature implementation of the .NET framework.
Mono is a good development tool.
Even if it competes directly with Java, Mono is very useful for porting ASP.NET and Windows applications.
Of course, you don’t have the WORA promise that Java has, but then again, SUN always wanted to maintain Java’s purity, and while that’s very good for portable applications, almost all Java desktop applications are crap … because of Swing and all compromises made for portability reasons, like the java.io package that’s also crap.
And although there are GTK bindings for Java and soon we’ll also have quality QT bindings provided by Trolltech, Java programmers are so indoctrinated with the WORA promise that it really doesn’t matter.
Not to mention that JNI is really hard to program against as compared to P/Invoke.
Also, many companies haven’t switched to ASP.NET 2.0, and ASP.NET 1.0 is a fine framework for a web application.
If you have to choose between Java and C#, there’s also the question of taste.
C# has features that are not in Java, and vice-versa, and some people prefer Java, and others prefer C#.
People do not understand that the goal of Mono is not to be 100% compatible with .NET.
The goal of Mono, as Miguel de Icaza said numerous times, is to provide a good Linux platform for applications.
If Java will go open-source, great … but it would be kind of dumb for all programmers to have only 1 choice when it comes to a high-performance virtual machine that runs on top of Linux.
And I don’t know where you have those benchmarks from, but Mono moves quite well compared to Python, Ruby, PHP, and the possibilities for optimizations are endless … and even if Java will always be faster, Mono already has advantages right now, like lower memory consumption.
Edited 2006-11-10 01:22
All of the new Microsoft products are going to require the 2.0 Framework. So, unless a company has no upgrade plans, they will be installing it. However, having said that, you can install more than one Framework version at the same time.
But, I agree with you that choice is good.
Edited 2006-11-10 03:32
like the java.io package that’s also crap.
Have you had a look at the java.nio package?
And although there are GTK bindings for Java and soon we’ll also have quality QT bindings provided by Trolltech, Java programmers are so indoctrinated with the WORA promise that it really doesn’t matter.
Java Gnome was not popular because of licensing problems with Sun’s JRE (which means installing the JRE on any linux distro used to be a hassle)and immaturity of Classpath.
almost all Java desktop applications are crap … because of Swing and all compromises made for portability reasons
Personally, I think it has more to do with Sun’s lack of focus on the desktop and it’s easy to see: Just compare the nativeness of Swing’s Windows theme versus Qt’s theme (both are emulating the native theme).
They only started to seriously focus on making Java a viable desktop application platform in Java 5. However, Java 6 will bring many improvements to Java SE, including better JIT, desktop integration, more-native looking LnF, instant splash screen among other things.
As I remember I tried to use Java gnome bindings for some simple app but I was quickly overthrown by stream of bugs and coredumps that shouldn’t even happen in managed env.
I gues it still haven’t achieved the criticall mass of developers and users to be seriousely usefull.
gtk# is in that matter much more solution right now.
People do not understand that the goal of Mono is not to be 100% compatible with .NET.
The goal of Mono, as Miguel de Icaza said numerous times, is to provide a good Linux platform for applications.
No it isn’t. If that was the goal then they would have looked at .Net, looked at what they could have learned from it, then looked at Java and up and coming languages like Ruby to create a new platform that took all that into account.
They didn’t do that because they thought .Net was the greatest thing since sliced bread, they wanted to clone the .Net framework and create a situation where .Net applications could be copied and run under Mono.
Certainly for Novell, 100% .Net compatiblity is the only selling point of Mono, and therein they will always be stuck trying to achieve that non-achievable goal.
Edited 2006-11-10 14:21
“””They didn’t do that because they thought .Net was the greatest thing since sliced bread, they wanted to clone the .Net framework and create a situation where .Net applications could be copied and run under Mono.
Certainly for Novell, 100% .Net compatiblity is the only selling point of Mono, and therein they will always be stuck trying to achieve that non-achievable goal.”””
… at the expense of anyone who stands in their way.
To be fair, though, I think Miguel *does* think that .Net is the best thing since sliced bread.
And maybe it is good. But that does not mean that it is the best for OSS software.
I view Mono much as I view Samba. I’m exceedingly glad that we have it (somewhat less exceedingly in the Mono case), but wish we didn’t need it, and hope that we don’t depend upon it any more than absolutely necessary.
Edited 2006-11-10 20:23
The new J2SE 6 (that’s is in RC since today), solves the issues you mention (compromises for portability on Swing or on in java.io)
Mono 1.2 does not claim to have a complete 2.0 implementation.
But you must not have tried very hard (or in the last 9 months), because master pages is one of the standard demos and standard samples of the XSP download.
Regarding your comment about “Windows style”, the entire class library can be built with MonoDevelop (shocking, I know), and it is in fact, simpler than trying to build Mono on Windows.
Linux has always been the easiest platform to get Mono working. So am curious about what kind of problems you had, or even if you had one, or you have not yet mastered the use of “vi” or “emacs” to open a file (which is what I personally use).
Now, you might be referring to the fact that *Windows* developers do not care about MonoDevelop, and that is certainly true. Which is why we are working on having MonoDevelop open Visual Studio project in the future.
In the meantime, you can use “prj2make” to generate makefiles from visual studio solutions.
Now, I get the impression that you are a troll. Becaues there is an open source Java that you could use today, it is very complete, and Sun opening up Java will only make it more complete.
So I doubt that you are actually a Mono user, you seem to be a troll.
I gues he was reffering to typical .Net apps, not the framework itself.
And by the way, is there some document/blog outlining the performance advancements?
Keep cool Miguel! The masterpages feature is well implemented and I forgot to test it with xsp2 but the webparts feature is definitely not implemented. And under .NET webparts currently working only with IE. So I think, it will be not that easy to implement them in Mono because (currently) it is a MS/IE only feature as many other things under .NET (Windows.Forms).
The “Windows style” (code) statement were ascribed to the most .NET/Mono projects (not to Mono itself) that is nothing unusual because the most .NET devs usually working in a MS dominated environment.
I know about prj2make but as I said: It is *not easy* (not impossible) to open MS VS projects under monodevelop.
You doubt if I am (was?) a Mono user? mono-asp.de is (was) my website running xsp.exe/MySQL on Ubuntu.
And I am not against Mono because I have choose Mono because of the superior .NET/Mono framework design. But the dark site of Mono is the MS dominated environment (as I mentioned: the most .NET/Mono based projects were developed in a MS environment).
Of course your are furious about my statement because Mono is “your” project and it is very difficult to stay impartial in such discussions.
Btw, a troll is not a person that criticizes something relying on facts.
Facts? Please give us links to those “facts” (comparison of performance differences between Mono/C#/ASP.NET and Java(JSP/Servlet))
No trolling intended. But…
Is this real 1.2 or release candidate?
Sources are flagged as 1.2 while spec for rpm says:
Source0: mono-1.2.tar.gz
…
Provides: mono = 1.2-rc0.novell
wasn’t it said that 1.2 will ship with gmcs merged in mcs (or instead, as far as I got it gmcs was mcs with generics and other 2.0 features)?
Mono 1.2 ships with complete C# 1.0 and C# 2.0 compilers, called mcs and gmcs respectively
does mkbundle now eliminates need for mono installed aka. complete binary or this just works for libraries it depends on, I was testing it long ago, and couldn’t do zilch without mono.
one more question regarding inotify? Just my little “conspiracy theory” curiosity:) (I might be even wrong here, if so please do correct me)
Is the implementation of FileSystemWatcher limited to single folder as inotify or does it enable watching subfolders. Later might be a problem when used improperly or without thinking over. limits of inotify are 4096 (or so) watched instances. Which could result in unpredictable problems if not extra specified. Example. Few global locks on very large (or even not so large) storage devices could simply present problem where the first would take all the locks and second would get errors. Just asking this as question, because if I’m right problems could arise with inotify implemented the MS way.
btw. Wonderfull I/O layer solution for crossplatform apps. One big problem is nailed (in ease of creating crossplatform apps) with that. And damn good job in speeding up Windows.Forms
I’m sure the two people still using mono will be thrilled.
No offence, but your comment and people who modded you up have never been Mono community. By the way, serious coders and developers have no time to waste to disscuss how Novell is bad, how Mono is bad, how it violates patents, how it is evil, how we must boycot it…
Get over it. World isn’t black and white, and lot of people doesn’t agree with sentiment of Novell/Microsoft deal bashers.
Post Scriptum: FYI, I am not Mono developer, but I use Beagle on Ubuntu, which is very usable right now. I don’t use SUSE, because it is so bloated and hard to use. And it is the same for Fedora. However, I dig Novell enterprise stuff like Groupwise and eDirectory. So far there is no plug and play eq. for these apps in free software/open source world.
1.2 has been a long time coming. It is time for celebration. Now that Managed Windows Forms are released we will likely get Mike Kestner back on the Gtk# hacking camp.
Congratulations to all of the Mono team both Novell employees as well as all of the devoted contributors.
Finally, I thank OSAlert for always keeping track of this great technology.
with the deal that there will be no suing between novell and MS i recon it wont be long until we see VASTLY improved compatibility
I’ve seen .NET code migrated to Mono so easily, its really excited.
Edited 2006-11-10 03:21
funny thing is, Java code does not need migration.
Just lots of debugging.
really? i develop in xp, and deploy in solaris/linux, and thats a swing app. maybe am missing something…
when was the last time you used Java ? 1998?
I’ve seen .NET code migrated to Mono so easily, its really excited.
Someone want to tell us how this guy got modded down?
Its not off topic, its not a personal attack.
you might not agree with it, but it hardly deserves a -1 rating.
.Net is a great framework. Now with Windows Forms support, Mono should see a lot more usage, which will lead to a better tested platform.
I know at the least that I will start using Mono (given it really does work).
Mono will not see more usage until commonly used computers will be equiped with Athlon128 FX-GTO-R Vroom! ™ Edition or Core 6 Trio 3 Duo 2 and 32GB of ram. It’s so slow it’s not even funny.
Yeah, it’s a flamebait but I think Mono devs should work on making it faster. Java was like that too but now Java apps just use slightly more ram, not 50% of CPU power.
Hello world compiles quick enough.
I’ll get my coat.
should start to be more useful now it supports forms.
So I’ve taken a little utility I’ve written on Windows and tries to run it (using the already compiled assembly).
It worked, although mono doesn’t seem to implement the AutoSize property for labels.
I then tried to compile the application using mono. Unfortunately I got plenty of errors.
MainForm.cs(32,4): error CS0117: `System.Windows.Forms.Application’ does not contain a definition for `SetCompatibleTextRenderingDefault’
MainForm.Designer.cs(75,4): error CS0117: `System.Windows.Forms.ListBox’ does not contain a definition for `FormattingEnabled’
MainForm.Designer.cs(100,4): error CS0117: `System.Windows.Forms.Button’ does not contain a definition for `UseVisualStyleBackColor’
MainForm.Designer.cs(112,4): error CS0117: `System.Windows.Forms.Button’ does not contain a definition for `UseVisualStyleBackColor’
MainForm.Designer.cs(135,4): error CS0117: `System.Windows.Forms.Button’ does not contain a definition for `UseVisualStyleBackColor’
MainForm.Designer.cs(158,4): error CS0117: `System.Windows.Forms.Button’ does not contain a definition for `UseVisualStyleBackColor’
MainForm.Designer.cs(163,4): error CS0117: `FolderMerger.MainForm’ does not contain a definition for `AutoScaleDimensions’
MainForm.Designer.cs(164,25): error CS0234: The type or namespace name `AutoScaleMode’ does not exist in the namespace `System.Windows.Forms’. Are you missing an assembly reference?
MainForm.Designer.cs(164,4): error CS0117: `FolderMerger.MainForm’ does not contain a definition for `AutoScaleMode’
To be honest, I built this application on SharpDevelop, using the .NET 2.0 framework. However, I haven’t (to my knowledge) used any .NET 2.0 abilities in my application (if these error messages say otherwise, please correct me).
So I’m afraid that Mono is not quite there yet. To me it still seems that Windows.Forms is incomplete.
Edited 2006-11-11 09:15
As you’ve seen you’ve used NET 2.0 features. Some of those are even implemented in Mono under 2.0 profile. (you could try compiling with gmcs)
Anyway Mono 1.2 does not officially support NET 2.0 features. It may sometimes work but it’s not supported.