UIAL is a User Interface Abstraction Layer for the .NET and Mono platforms. It's written in C# and will let the developer develop independent of the GUI library the user has available. For example, if System.Windows.Forms is not available, GTK# is used.