Avalon is both an API (application programming interface) and a graphics architecture, while Indigo is an API and a communications subsystem.
Together, they are to form two of the key pillars for the foundation of Microsofts next generation operating system, Longhorn.
On their own, both could be useful for programmers working on other operating system.
In particular, Indigo, which is a set of .Net technologies, could be useful for building and running distributed applications.
The Mono group, led by the famous open-source programmer Miguel de Icaza, has been successful in bringing the most important parts of .Net Linux and Mac OS X developers. Since Mono is open-source, it can be moved to other operating systems as well.
Mono 1.0 is made up of a C# programming language compiler, a run-time engine for Microsofts CLI (Common Language Infrastructure) and a group of .Net-compatible class libraries that are required for running .Net applications with Mono.
These libraries include open-source versions of Microsofts ADO.Net data access and ASP.Net Web application development technologies.
With Mono, its possible to write applications on one platform, say Windows, and have them run on Linux or vice-versa.
Indeed, one company, Mainsoft Corp., uses Monos functionality as the basis for its Visual Studio .Net for Linux Developer Program and Visual MainWin for J2EE (Java 2 Enterprise Edition) Developer Edition tool, code-named Grasshopper.
With these software development tools, programmers can use the Visual Studio-based IDE (integrated development environment) to develop, debug and deploy Web applications and Web services for the Windows, Linux and Java-based platforms.