MyXAML supports the runtime generation of user interfaces and code-behind instantiation within the context of existing namespaces in the .NET 1.1 framework or third party assemblies.
Microsoft is preparing to release a new namespace (MSAvalon) with a markup language (code-named XAML) with the release of Longhorn.
MyXAML is not intended to emulate the MSAvalon namespace. Rather, MyXAML supports the current System.Windows.Forms and System.Web.UI namespaces, along with third party namespaces.
This is accomplished by using the classes defined in these namespaces as the DOM itself, employing reflection to instantiate classes, set properties and events, and using the TypeConverter to convert from strings in the markup to the appropriate structure or enumeration type. In certain cases, custom type setters must be used, but this is fairly limited.
MyXAML also extends the namespace by providing elements such as style sheets.
In order to support the concept of using a markup language for GUI definition, several tools are necessary:
1. A Visual Designer to MyXAML converter
2. A designer that emits markup directly
3. VS.NET integration of #2
4. A code generator, taking the markup and generating C# or VB code to address performance issues
This project is intended to be an open-source collaboration for those interested in using and developing tools to support GUI definition using a markup language.