DOT NET assemblies and the Visual Designer
- Last Updated: April 24, 2023
- 3 minute read
- OpenEdge
- Version 12.2
- Documentation
.NET classes, including the forms and controls used to build an OpenEdge
GUI for .NET, reside in collections called assemblies. An application that includes .NET
classes must have a list of the assemblies in which those classes are stored. This list
of references is contained in a file called assemblies.xml.
An assemblies.xml file is automatically created for your
Progress Developer Studio for OpenEdge project when you place a control on a form or
manually add an assembly to the project. As you use .NET objects to build UI components,
Progress Developer Studio for OpenEdge adds the appropriate assembly references to the
file so that the assemblies.xml file for a project contains all
references needed for that project.
assemblies.xml file,
Progress Developer Studio for OpenEdge also adds a Referenced Assemblies node to the
Project Explorer view, providing a convenient list of the assemblies in use in the
project. If your application uses .NET classes other than those you access with the
Visual Designer, you can add them to the assemblies.xml file through a
dialog that is accessible via right-clicking in the Project Explorer view (or via the
Progress OpenEdge Properties page). assemblies.xml file or from the Project Explorer view. Although
unused assembly references do no harm, if you want to delete them, you must do so
manually. Use the Assemblies dialog in project
properties () to do this.Your application must have access to the assemblies at run time. Thus, the run-time environment must include all referenced assemblies.
Location of assemblies.xml and controls
By default, Progress Developer Studio for OpenEdge creates the
assemblies.xml file in the project's root folder. To specify a
different location, add -assemblies directory-path to the project startup parameters
(). You can enter the absolute directory path or the path relative to
the project working directory.
All controls installed with Progress Developer Studio for OpenEdge
are automatically registered in the global assembly cache (GAC), the standard
repository for .NET.assemblies that are designed for use by multiple applications
running on the local machine. The GAC enables applications to locate and use all of
the assemblies that it contains. Any assemblies used by the application that are not
registered in the GAC must reside in the same directory as the
assemblies.xml file. If you use such assemblies, be sure to
copy them to that location. This requirement applies both to the run-time
environment and to the design-time environment. Failure to keep the
assemblies.xml file and the assemblies together in the same
directory prevents applications from loading the controls at run time, and may cause
various design-time issues.
Updating assembly references to use new controls
Default assemblies
For any ABL application that accesses .NET objects, the AVM automatically loads certain .NET assemblies, including the appropriate versions of:
Progress.NetUI.dll— Assembly where all custom OpenEdge .NET classes resideMscorlib.dll— Assembly where all core Microsoft .NET classes resideSystem.Windows.Forms.dll— Assembly where all Microsoft form and control classes resideSystem.Drawing.dll— Assembly where all Microsoft graphics classes reside
ABL can therefore locate any .NET type that you reference from these
assemblies without their being listed in the assemblies.xml
file.