Using Visual Studio to develop with Mono

by Miguel de Icaza

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:

  • The Installing VSPrjMake screencast shows how you install the Visual Studio add-in.
  • In this screencast he shows how to test your Windows.Forms application with the Mono runtime using Visual Studio.
  • In this one he shows how to test an ASP.NET application with Mono from Visual Studio.

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


by Miguel de Icaza

We have been exploring for some time the new Infocard identity framework from Microsoft. If you are interested in this new identity system being developed, check the Microsoft web site here.

Thanks go to Mike Shaver for getting us in touch with Kim Cameron and Mike Jones:


The Zen of this is that we cant change it by ourselves. Microsoft can be part of that.

Posted on 23 Feb 2006

Follow up to Chris

by Miguel de Icaza

Chris points out in his blog entry that Xgl is a lot of work:

[...] The big thing about the AIGLX approach is that it's incremental. The path to get from here to there allows us to leverage the strengths we have, allow people to participate as their hardware allows and work iteratively with vendors to add support to cards. Simply put, AIGLX presents us with a hill instead of a cliff. That's the big difference.

But it is not an academic discussion anymore about the complexity of getting from here to there. We are already there, and the code is already on CVS and we have already climbed the most difficult part of the cliff.

Anyways, Chrisl, what about addressing the comments on the Fedora Wiki to reflect David's comments? There is a link added, but there were no "architectural" changes developed in private.

Anyways, more power to the Red Hat folks with AIGLX, am sure we will have a combination of both in various machines and am just happy to be able to use both depending on the hardware I have available at my disposal.

Posted on 23 Feb 2006

Port Security

by Miguel de Icaza

Dave Winer observations are interesting:

I love the political storm President Bush is caught in over the UAE port managers, because it is totally unfair, as he says it is. Of course they're perfectly qualified to manage the ports. They're not terrorists. They employ Americans. There's no extra risk. I love it because it's exactly the kind of dirty trick Bush uses, the same kind of dumb emotional illogic, and like his opponents he's left stammering like an idiot, caught in the headlights, explaining how it's not really an issue. It's the Swift Boat logic turned back at the master. It's as if Karl Rove was working for the Dems. I love it because it's funny and it's justice.

Posted on 23 Feb 2006

PHP.NET Compiler

by Miguel de Icaza

Raffa was funded by Google during the Summer of Code. He implemented a PHP compiler for Mono and .NET. After a small pause, he has resumed work on his compiler and has now started a blog here:

Other .NET assemblies can now be accessed directly from within PHP scripts. Like that you can i.e. build GUIs with PHP using the Gnome libraries. I've already created two interesting examples including events and Drag&Drop features. You can import namespaces and types from other .NET assemblies with a spcial "using" syntax similar to the one known from C#. After doing so the imported types are avialable in the same way as classes implemented in PHP.

Posted on 23 Feb 2006

Novell Linux Desktop Updates Blog

by Miguel de Icaza

I just found out about Moosy a blog on Novell Linux Desktop-centric happenings.

I believe its someone at Novell, but I could not find any contact info.

Posted on 23 Feb 2006

The Dave Reveman Files: Xgl and AIGLX

by Miguel de Icaza

David Reveman, has posted his thoughts on the Xgl/Aiglx debate here:

One of the points that I particularly like is:

An important goal with X on OpenGL is to make it easier for X to keep up with the advances in graphics hardware. Eliminating the custom 2D acceleration code will reduce the development burden and make this easier. This can probably be achieved through AIGLX as well, I know that the people working on AIGLX have discussed putting some of the acceleration code I have in Xgl inside Xorg with AIGLX and that would be a step in that direction. However, I strongly believe that going all the way to an X server completely on top of the OpenGL API is the best solution in the long run.

In particular I like his comments on the criticisms of Xgl, they all boil down to "It is a lot of work":

I think the arguments made by nvidia to why X on OpenGL would be worse than the current driver architecture can be debated on until forever. I think it all boils down to if we want put some more effort to it and take the big scary step to something new or if we want to stick to the old well known. Not too surprising, we have people who are in favor of both and we'll likely have development being done on both, which I don't think is that bad after all.

So far I haven't heard a single argument for why X on OpenGL is a a bad idea other than that it's a big step and a lot of work will have to be done. If that would stop me from working on Xgl, I wouldn't have started working on it in the first place.

Finally, David sets the record straight on the Xgl development, to refute the claims made on the Fedora page:

"We've been working on the AIGLX code for a some time with the community, which is in direct contrast with the way that XGL was developed. XGL spent the last few months of its development behind closed doors and was dropped on the community as a finished solution. Unfortunately, it wasn't peer reviewed during its development process, and its architecture doesn't sit well with a lot of people."

I've been developing Xgl in the open since November 2004. Only the last few months have been behind closed doors. I can agree that this wasn't the best thing but no architectural changes have been made during this period, just a lot of hard work implementing missing functionality, tracking down and fixing bugs in xgl and various other places in the x server tree. We didn't drop a finished solution, we dropped a much improved version, that's all.

Anyways, more details are on David's post

Posted on 23 Feb 2006

Novell's Open Audio Podcast, part 2

by Miguel de Icaza

Ted has posted some updates on Open Audio: Ogg formats are comming, he discusses high/medium qualities, why they chose the format they did and the music they use. His post is: Next Steps for Novell Open Audio.

Posted on 23 Feb 2006

Novell starts Podcasting

by Miguel de Icaza

Novell has started a podcasting show.

On the first show they talk with Brady Anderson and Calvin Gaisford from the iFolder.

Since iFolder is built on top of Mono, you should listen to this right away.

Posted on 22 Feb 2006

Linux World México

by Miguel de Icaza

I am in México this week for Linux World.

My keynote is open to the public on Thursday at 4pm.

Posted on 15 Feb 2006

Your Politics Update

by Miguel de Icaza

I ran into this article from conservative Paul Craig Roberts. Despite the growing excuses, I believe it spells out a few interesting bits.

Americans have forgotten what it takes to remain free. Instead, every ideology, every group is determined to use government to advance its agenda. As the government's power grows, the people are eclipsed.

We have reached a point where the Bush administration is determined to totally eclipse the people. Bewitched by neoconservatives and lustful for power, the Bush administration and the Republican Party are aligning themselves firmly against the American people. Their first victims, of course, were the true conservatives. Having eliminated internal opposition, the Bush administration is now using blackmail obtained through illegal spying on American citizens to silence the media and the opposition party.


Before flinching at my assertion of blackmail, ask yourself why President Bush refuses to obey the Foreign Intelligence Surveillance Act. The purpose of the FISA court is to ensure that administrations do not spy for partisan political reasons. The warrant requirement is to ensure that a panel of independent federal judges hears a legitimate reason for the spying, thus protecting a president from the temptation to abuse the powers of government. The only reason for the Bush administration to evade the court is that the Bush administration had no legitimate reasons for its spying. This should be obvious even to a naif.

The years of illegal spying have given the Bush administration power over the media and the opposition. Journalists and Democratic politicians don't want to have their adulterous affairs broadcast over television or to see their favorite online porn sites revealed in headlines in the local press with their names attached. Only people willing to risk such disclosures can stand up for the country.

(Emphasis added)

In particular I like his point about the no-fly list. It always felt dumb to have the no-fly list in the first place and all of the side effects we have heard from it are the result of this dumbness. Maybe it was naivete on my part, but this makes sense:

Consider the no-fly list. This list has no purpose whatsoever but to harass and disrupt the livelihoods of Bush's critics. If a known terrorist were to show up at check-in, he would be arrested and taken into custody, not told that he could not fly. What sense does it make to tell someone who is not subject to arrest and who has cleared screening that he or she cannot fly? How is this person any more dangerous than any other passenger?

This is priceless:

If Senator Ted Kennedy, a famous senator with two martyred brothers, can be put on a no-fly list, as he was for several weeks, anyone can be put on the list. The list has no accountability. People on the list cannot even find out why they are on the list. There is no recourse, no procedure for correcting mistakes.

I am certain that there are more Bush critics on the list than there are terrorists. According to reports, the list now comprises 80,000 names! This number must greatly dwarf the total number of terrorists in the world and certainly the number of known terrorists.

He has a follow up article, on the State of The Union, focusing in particular on the economy bits here.

On that note, Bilmes and Stiglitz claim that the actual cost of the Iraq war will end up being between one and two trillion dollars.

In the meantime there is a Sundance short that makes fun at the actual state of the economy. I found it entertaining, but it might not be appreciated by everyone (sorry, requires an updated Flash): here.

Update: Robert's second article goes well with the previous video link:

[...] The US trade deficit in ATP now exceeds the US surplus in Intellectual Property licenses and fees. The US no longer earns enough from high tech to cover any part of its import bill for oil, autos, or clothing.

This is an astonishing development. The US "superpower" is dependent on China for advanced technology products and is dependent on Asia to finance its massive deficits and foreign wars. In view of the rapid collapse of US economic potential, my prediction in January 2004 that the US would be a third world economy in 20 years was optimistic. Another five years like the last, and little will be left.

Posted on 13 Feb 2006

Mono on SkyOS

by Miguel de Icaza

Robert, from SkyOS, ported Mono to SkyOS.

On a separate post he talks about challenges he had in porting Mono to SkyOS. In the end he basically implemented the pthreads API that Mono expects, completed some kernel calls and got signals to behave like Posix signals.

The post is interesting for those considering porting Mono to non-POSIX platforms.

Xgl resources

For those of you which are interested in getting Xgl running on your hardware, check the OpenSUSE Xgl and the Compiz wiki pages for the details.

As I mentioned on the previous post compiz is a new window and compositing manager that must be used instead of your current window manager to get the most out of Xgl.

One of the interesting bits about David's compiz architecture is that the actual decoration for you windows has been moved out of the window manager into a separate process. Today there is one decorator implemented gnome-window-decorator, but hopefully more will come in the future.

apt-get on OpenSuse

I am not an apt-get user, but some of my friends are. Yesterday I found out that OpenSUSE (and SUSE) ship with apt-get, and that they can do their apt-getty-related-program-activities in SUSE just fine.

That being said, I am a Red Carpet/ZLM kind of guy (specially considering that the new ZenWorks client is implemented in, surprise surprise, Mono).

Posted on 09 Feb 2006

Imeem Interviewed at the Mac Market

by Miguel de Icaza

The Imeem founders, Jan and Dalton, were interviewed in Apple's Business Mac Market.

"With Mono" says Jan, "we have a low-cost server environment where everything but the UI for the two clients is the same C# code. Then we can use Visual Studio to create a DLL for the Windows client; and Cocoa, Objective C, and Interface Builder for the Mac client. We think we're the first company to create a cross-platform product with this approach."

They talk about Dumbarton, a framework that they built to create applications that mix Cocoa and Mono.

Thanks to Zac for the link.

Posted on 09 Feb 2006

From our Upcoming Album

by Miguel de Icaza

This picture was taken during our practice sessions for our upcoming Album "Adventures of a Spaniard in Boston", featuring the song "Gonzalo":

Miguel de Icaza and Alan Aspuru Practicing.

Posted on 08 Feb 2006

Url me

by Miguel de Icaza

Nat Friedman: what a beautiful mail danw just sent
Nat Friedman: they should teach from that mail in software classes
Miguel de Icaza: Url me
Nat Friedman:

Nat followed up here.

Oh, and here is a picture of Dan:


Oh, and one of Nat:


And this is what a fork looks like:

Oh, and Jakub has a nice XGL Logo.

Update: Alternative link to Dan's post is here.

Posted on 07 Feb 2006


by Miguel de Icaza

Today Novell announced the release of Xgl and Compiz, the new window manager/composition manager to go with it. Novell has the release details here.

Videos of Xgl in action:

  1. True transparency .mpg (12MB)| .ogg (3.7MB) | streaming flash
  2. Zoom .mpg (8.5MB) | streaming flash
  3. Desktop Organization .mpg (16MB) | .ogg (5.7MB) | streaming flash
  4. Spinning Cube .mpg (16MB) | .ogg (7.1MB) | streaming flash

Stephen at CNet puts it in context in his Novell seeks to boost Linux graphics article.

Compiz is a new joint window manager and composition manager. David Reveman had to merge these into a single process to provide the kind of functionality that we wanted on the desktop.

Compiz has a plugin framework, many of the visual effects are implemented by independent plugins. We hope to see numerous plugins for new effects that plug into the existing window manager.

Now, the actual decoration rendering was split out into a separate process. Today Compiz has its own internal rendering of the window decorations which uses Cairo and an alpha channel to render its decorations.

But someone could write a Gnome/Metacity decoration renderer or a KDE decoration rendered. Both would allow existing window manager themes to integrate with Compiz.

Xgl has already been checked into the public repositories, Compiz will be checked in after David Reveman's presentation at the X conference.

Check the Novell page for details on downloading the software.

Posted on 07 Feb 2006

Mono in LinuxAsia 2006

by Miguel de Icaza

Hari, which is in charge of Mono's C# compiler, will be representing Mono at LinuxAsia 2006 in New Delhi. He will do a few talks and will also be at the Novell booth.

Posted on 07 Feb 2006


by Miguel de Icaza

The company where my friend Juantom�s works just got funded by Skype and Google (18 million Euros).

They are pitching an interesting way of providing WiFi access everywhere by having people donate their bandwidth. See what they are doing.

Posted on 06 Feb 2006

XMLmark and Mono Performance Improvements

by Miguel de Icaza

Atsushi has posted the result from his optimization week running the XMLmark benchmark. Very good results for a week of work, the graphs show transactions per second and the Mono revision number:

DOM performance plot SAX performance plot

See his post for all the details on this work.

Windows.Forms updates

Peter has posted an update to the Mono Windows Forms blog on their current work here.

Sebastien posted some nice screenshots of the new region code in libgdiplus:


See his blog for further discussion.

Mono on MacOSX/Intel

Geoff has been working on porting Mono to OSX/Intel, his progres report as well as the testing DMG are here.


For the upcoming versions of Mono, we will be splitting the gtk-sharp packages to reduce the dependencies that a given application needs.

So if you just use Gtk+ your application will not pull all the Gnome stack to run.

Posted on 03 Feb 2006

I love Jackson

by Miguel de Icaza

From #mono-winforms IRC channel today:

<jackson> man at what point in your life do you start bootlegging OS videos.

Posted on 02 Feb 2006

Mono Series from Addison Wesley

by Miguel de Icaza

Erik just announced that he is the series editor for a number of books on Mono for Addison Wesley.

Posted on 01 Feb 2006

Novell Linux Desktop Demo

by Miguel de Icaza

Nat is in Paris demoing the upcoming Novell Linux Desktop, PC world has a description of his talk.

Posted on 01 Feb 2006

C5 Generics Class Library

by Miguel de Icaza

Peter Sestoft released version 1.0 of his C5 generics library for C#, it is available here:

C5 provides functionality and data structures not provided by the standard .Net System.Collections.Generic namespace, such as tree data structures, heap based priority queues and hash indexed array lists and linked lists, making it more comprehensive than collection class libraries on similar platforms, such as Java. Unlike many other collection class libraries, C5 is designed with a strict policy of supporting "code to interface not implementation".

C5 is documented on his technical report and he also has the docs online.

Mono bundles his old 0.5 library, we will be upgrading the library soon.

Posted on 01 Feb 2006