Mono Hacking Roadmap
Miguel de Icaza (miguel@ximian.com)

Introductory notes

The intention of this document and the Mono Roadmap is to be a basis for discussion. I want to build on these two documents, and update as we get more insight into the release process and the technologies we want to ship.

Background

At the 2003 PDC Microsoft introduced many new technologies, which many of us are very excited about. To me, it underlined the importance of having a roadmap for users of Mono technologies. That way they know precisely what to expect from us when. We have been working on Mono for more than two years, and it is important that we release a stable product to the public.

We have various degrees of maturity and feature completeness in our code base, and I do not believe that we should aim to be full implementation .NET 1.0 or .NET 1.1 in our 1.0 release, that would just push the release at least for another year . The Mono Roadmap emphasizes this assumption.

The 1.0 release is critical for the adoption of Mono on the Linux environment, even if it is not as complete as the Framework, lets get something stable, and fun to people to use.

Mono 1.0: missing functionality.

For the 1.0 release, there are a number of features that we will have to complete, in no particular order:

The team at Novell can probably take care of most of these things (help is always welcomed, of course), letting folks in the open source world working on the more fun components.

Alpha components.

Various Mono developers are working on areas that will not make it into the 1.0 timeframe: JScript, WSE, VB.NET, Windows.Forms, Generics. We should continue to work on those components, as they will come shortly after, and they are probably more fun to develop than stabilizing the core.

New components: Whidbey and Longhorn features

Everyone is probably very excited about the new features in the Whidbey release of .NET, and most importantly the Longhorn features. I am sure that many of us will not resist the urge to put some of the new assemblies on CVS.

We will likely add a profile for those of you that want to work on this, and can not wait to get your hands in the code.

The things to keep in mind while adding code which is not in .NET 1.0 and .NET 1.1:

There are three areas of new hot features:

Most code that will reach the users in the short time frame (next year) will be related to the Whidbey improvements, so I encourage developers to work on those pieces, as they are the ones that will help Mono the most.

ASP.NET 2.0 plans

Gonzalo will continue to coordinate this effort; At this time ASP.NET 2.0 features will not make it into Mono 1.0.

Avalon plans

On the surface Avalaon seems like it uses something like GdiPlus/Cairo for rendering. That was my initial feeling, but it turns out that they had to rewrite everything to have a performing rendering engine, and implement some very advanced rendering features that include compositing with video streams, also their brushes seem to be fairly powerful.

XAML, a new markup language that binds tags to .NET classes was also presented, but this is the least interesting part. A tiny compiler translates the XAML source files into C# code. The whole process is just like Glade, and should be easy to do.

The really elaborate parts are the rendering engine, and the composition model for widgets. It is a complete new toolkit, and if we want to implement this one, we will have to have a new toolkit on Unix, incompatible with everything else, maybe stressing the importance of working with other open source projects in defining a cross-toolkit theming strategy to address this particular problem.

A Mini-Avalon is easy to do, but a complete one will require much interaction with other groups: the Cairo folks are probably the most qualified to assist us.

Indigo Plans

Indigo is still an early product (FAQ, but it could benefit from continued development of our WSE1 and WSE2 components, later to bring some of the code to it.

Again, since people are visibly excited about this technology, we will lay down in the next few days a framework to contribute to it.

Last Updated: Nov 1st, 2003