Windows.Forms is approaching feature completeness in Mono. In the next few weeks we will be doing the first beta release of Mono for our target Mono 1.2.
Although most of the API coverage was done a few months ago, the semantics of it were not exactly perfect. We were lucky to be able to tap into a large body of open source software for Windows.Forms to test and bug fix Mono's implementation.
More recently, as Winforms has become more complete we have started work in running proprietary or commercial applications to run in Mono.
He has blogged a set of screenshots tracking the progress from the December to this date, here are the first and last screenshot from his blog:
Nexxia in December.
Nexxia running on Mono today.
Check out his blog for more information.
Posted on 23 Mar 2006
It has been terrific to see folks from all walks of life approach the booth and come carrying the applications that they are currently working on contained in an USB keydrive and having us run it on the different platforms. To most of them, they tend to be very dazzled when they see their WinForms projects run on Linux (SLED 10) often without modification. Some of the apps they have come talk about range from GroupWare clients, Decision Support Systems (DSS), Enterprise Information Systems (EIS) front ends (some web based others SmartClients), etc.
Paco, an attendee and Wade in the Mono Booth.
A journalist asked Nat whether Mono would run OpenDental.Net, an open source Winforms-based application for dentists. Nat SMSesed me the question, I downloaded the software, took a quick glance at what is needed (it will require replacing some Windows libraries with some Unix-specific libraries and renaming a few files to make bash happy for building on Linux):
I emailed Jordan Sparks, Doctor of Dental Medicine and developer of OpenDental and asked him whether he could make the filesystem layout changes to ease the porting effort, and got a reply back from him that same night. In his words:
I'm really a HUGE fan of what you guys are doing. It's going to change dental offices forever, and it will impact a lot of people.
My plan is to assist Mr Jordan porting his OpenDental software to Linux. As I mentioned, it will require swapping out a few Windows components he is using for the equivalent Linux libraries. It will be educational. This along with the PaintDot.Net porting effort should be provide some good material for a .NET to Mono migration white paper.
In general, porting from .NET on Windows to Mono on Linux has the same feel of porting across different versions of Unix in the past. From BSD to SystemV: replace a few libraries and routines with different versions. It is a relatively simple exercise.
I find this very interesting. On of my dentists is also a hacker on his spare time, and runs his office completely on software he has developed using Visual Basic. On one of the visits I made to his office, as I was being treated, he explained to me with excitement why he liked working on VB: the software that runs his whole office is something he has built over the years. He does a lot of the coding himself, but he loves to spice up his application by purchasing a third party control for displaying graphs, managing his x-ray images and track patients.
This is the kind of ease of use that we are trying to achieve with Mono and MonoDevelop. Lower the barrier for creating amazing applications on Linux.
MonoDevelop was originally a project that was developed by Mono users. Folks that wanted to have an IDE on Linux, so they ported various pieces of SharpDevelop to Linux and replaced Windows.Forms with our own toolkit Gtk#. The goal here was to create a truly native Linux application and to take advantage of Linux and GNOME specific features.
DogFooding MonoDevelop: using MonoDevelop to develop MonoDevelop.
As time passed on, our own engineers started using MonoDevelop. Lluis, better known for his work on remoting and web services, started using MonoDevelop to work on Mono itself. He developed a plugin that would allow him to build and develop the Mono runtime right in MonoDevelop.
Around that time we decided that we should invest in MonoDevelop as part of the efforts of the Mono team, for a few reasons:
Until December, we were using Glade-3 for our GUI design needs. At that point we went with Glade-3 as a short-term solution and because we felt it was complete enough to be a drop-in technology into MonoDevelop and had enough bits to allow it to be embedded.
But we soon realized that for a full integration we would have to spend some significant developer time in getting it in shape for integration into MonoDevelop. So we changed our plans and Lluis started working on integrating Stetic and finishing the missing bits in Stetic.
The upcoming MonoDevelop will contain a new Stetic-based GUI designer. You can learn more on Lluis' blog entry.
The Stetic integration is fantastic, these are some of the features I like:
Custom Gtk# widgets that you develop appear on the toolbox palette, and you can use these widgets right into your main application if you want to. No placeholders anymore.
A wizard for creating custom Gtk# widgets.
Double-clicking on events for a widget will create a stub for the handler. For example, if you double click on a button, it will create the
OnButton1Clicked method with its proper arguments.
MonoDevelop also went through a major refactoring effort, where the IDE features are all plugins. This is an idea inspired by Eclipse's implementation.
A new release of Mono and MonoDevelop will be coming out in a few weeks with these features.
In the meantime, Chris Toshok has started integrating Michael's ASP.NET editor into MonoDevelop. So we will have an IDE that can be used for doing smart client development as well as web applications all in one:
Posted on 22 Mar 2006
At the Press Conference at the Novell Brainshare event this week in Salt Lake City Nat presented the new developments on the Linux desktop that the team has been working on.
A life walk-through of the new search-based desktop works with the usual: Xgl, F-Spot, Banshee, Beagle, Tomboy, hardware plug-and-play and the desktop integration in the upcoming OpenSUSE release.
Check it out at here (Updated with the official presentation).
Some of these were visible on the video from the LinuxSolutions in Paris, but this time the video is part of Novell's production so you can actually see the details.
Posted on 21 Mar 2006
China, unlike Europe, refuses to be intimidated by Washington, a primary reason for the fear of China by US planners, which presents a dilemma: steps toward confrontation are inhibited by US corporate reliance on China as an export platform and growing market, as well as by China's financial reserves - reported to be approaching Japan's in scale.
An additional step, already being contemplated, is an Asian oil market trading in euros. The impact on the international financial system and the balance of global power could be significant. It should be no surprise that President Bush paid a recent visit to try to keep India in the fold, offering nuclear cooperation and other inducements as a lure.
Venezuela, the leading oil exporter in the hemisphere, has forged probably the closest relations with China of any Latin American country, and is planning to sell increasing amounts of oil to China as part of its effort to reduce dependence on the openly hostile US government.
Venezuela has joined Mercosur, the South American customs union - a move described by Nestor Kirchner, the Argentinian president, as "a milestone" in the development of this trading bloc, and welcomed as a "new chapter in our integration" by Luiz Inacio Lula da Silva, the Brazilian president.
Venezuela, apart from supplying Argentina with fuel oil, bought almost a third of Argentinian debt issued in 2005, one element of a region-wide effort to free the countries from the controls of the IMF after two decades of disastrous conformity to the rules imposed by the US-dominated international financial institutions.
Interesting bits about Cuba and Venezuela as well:
Cuba-Venezuela relations are becoming ever closer, each relying on its comparative advantage. Venezuela is providing low-cost oil, while in return Cuba organises literacy and health programmes, sending thousands of highly skilled professionals, teachers and doctors, who work in the poorest and most neglected areas, as they do elsewhere in the third world.
"Cuba has provided the largest contingent of doctors and paramedics to Pakistan," paying all the costs (perhaps with Venezuelan funding), writes John Cherian in India's Frontline magazine, citing Dawn, a leading Pakistan daily.
President Pervez Musharraf of Pakistan expressed his "deep gratitude" to Fidel Castro for the "spirit and compassion" of the Cuban medical teams - reported to comprise more than 1,000 trained personnel, 44% of them women, who remained to work in remote mountain villages, "living in tents in freezing weather and in an alien culture", after western aid teams had been withdrawn.
On a separate note, the trend is for Mexico to elect the progressive candidate in the upcoming elections.
Posted on 16 Mar 2006
George Clooney's I Am a Liberal. There, I Said It!:
That's one of the things that drew me to making a film about Murrow. When you hear Murrow say, "We mustn't confuse dissent with disloyalty" and "We can't defend freedom at home by deserting it at home," it's like he's commenting on today's headlines.
The fear of being criticized can be paralyzing. Just look at the way so many Democrats caved in the run up to the war. In 2003, a lot of us were saying, where is the link between Saddam and bin Laden? What does Iraq have to do with 9/11? We knew it was bullshit. Which is why it drives me crazy to hear all these Democrats saying, "We were misled." It makes me want to shout, "Fuck you, you weren't misled. You were afraid of being called unpatriotic."
Posted on 13 Mar 2006
Pictures from the student strike in Paris that took over the Sorbonne University.
Posted on 12 Mar 2006
Alex today pointed me to some screenshots of the upcoming Novell Linux Desktop, they are here.
Posted on 09 Mar 2006
Dave Winer points to a couple of Apple patents:
Apple is patenting our inventions, again. Oy.
Jens Alfke, one of Apple's "inventors" stopped by to explain how there's no real generosity in the tech business. I can see where he might get that idea, working where he does.
There is an interesting discussion on Dave's site.
If this is the kind of thing that passes as a patentable invention nowadays, we must get ready for a few very dull years in the technology scene.
Posted on 08 Mar 2006
Joe posted an enthusiastic description of AppArmor: a Novell technology that uses the Linux security infrastructure to improve the security of your system. Novell originally acquired this proprietary product last year and included it with OpenSUSE and open sourced the effort.
Joe links to a recent presentation at FOSDEM which is worth watching as it explains how AppArmor works and demostrates how you can augment the rules in AppArmor for your own applications and how you can secure a web site.
I once got the demo live, and it was fairly impressive as I was given a root shell, but was basically unable to escape the "sandbox" that AppArmor had created.
Both AppArmor and SELinux use the same kernel infrastructure to create the sandbox. From the AppArmor FAQ I liked this explanation:
SELinux is an implementation of mandatory access controls that uses labeled security, ie, the application of a tag to each data file that identifies that file's appropriate security level. Labeled security has advantages in organizations where secrecy is paramount, that is, ensuring that only those authorized at appropriate clearance levels can view a given piece of data. The labels allow the operating system to handle data with appropriate controls, eliminating the need to store the information on multiple computers of varying security levels. Although this feature has value to organizations such as intelligence agencies whose main goal is to keep secret information secret, it introduces a significant level of complexity and has limited value to most commercial enterprises whose primary objective is data integrity, ie, preventing the corruption of data.
The FAQ goes into a larger comparison with SELinux if you are interested in that.
Posted on 07 Mar 2006
If you are interested in developing with Mono using Visual Studio, there are a number of tools that Francisco Martinez has developed to make your experience smoother.
He created a few screencasts and a general introduction on his blog:
Today for the first time I had the chance to play with these on Paco's laptop (he is visiting the Cambridge office this week). He also has developed a tool to choose which Mono runtime to use. The tool is useful for Mono power-users on Windows (you can watch your app work better with new versions of Mono as you go; Or you can track regressions in Mono).
In his blog entry, he has other screencasts showing how to run the same application with different runtimes (.NET CLR and Mono). Check it out.
Pretty much these tools do most of what we had discussed in the past in terms of Visual Studio and Mono integration.
The next step would be to integrate this with a VMWare player with a OpenSUSE OS image to have all the Mono development tools and test applications directly from Visual Studio into the VMware image.
Posted on 25 Feb 2006