.NET forms and ABL windows have a number of similarities, particularly in visual presentation, but also many differences in their behavior and how you work with them in an ABL session. .NET forms and ABL windows each rely on entirely different object models. .NET forms are classes within a strongly-typed .NET class hierarchy, and ABL windows are widgets, each of which is a kind of handle-based visual object with weak typing and with no explicit object hierarchy. In their native environments, .NET forms interact with, contain, and extend only other .NET classes, while ABL windows interact with and contain only other widgets.
Nevertheless, the user interface for many applications, especially existing applications that you might want to enhance with .NET forms, is already built from the traditional OpenEdge GUI based on ABL windows. You might want to add a few .NET forms to your existing traditional OpenEdge GUI, or you might want to add many more, perhaps replacing all of your traditional GUI with the OpenEdge GUI for .NET, based only on .NET forms. ABL provides features that help to combine .NET forms with ABL windows in a single application, regardless of the balance of integration and migration. In the sections that follow, unless specifically noted, a reference to form refers to a .NET form, and a reference to window refers to an ABL window.