AVEVA OMI Software Developer Kit
AppManifest.xml File

Public classes are automatically exposed in your app as controls. Properties of these controls are similarly exposed. When your app is imported into the System Platform IDE and selected by a user in the Layout and ViewApp Editors, the controls and properties will be visible. An app will include at least one public Framework element. If your assembly contains dependencies (for example, third-party UI DLLs), an app can easily include dozens or even hundreds of controls and properties for UI or other functions ancillary to the business controls you have built. To avoid the confusion that this will cause for your app consumers, you can limit which controls and properties are shown by adding an AppManifest.xml file to your project. The manifest file acts as a filter and limits what the user sees. Only the controls and properties that are explicitly listed in your AppManifest.xml file will be visible to users.

If your app includes an editor, the AppManifest file is required to expose the editor. Information about the syntax for showing an app editor are listed below.

        

For each control you wish to expose for use, list any configurable properties that should be visible. A control does not have to have configurable properties.

  • If no AppManifest.xml file is included, all controls and properties for each control, including those in dependent files, will be exposed.
  • If an AppManifest.xml file is included that does not explicitly include <Filters> or any <Control> nodes,, all public controls and publio properties from those controls will be exposed. 
  • If your app includes an app editor, the AppManifest.xml file is required. If not, the AppManifest.xml file is optional.

The AppManifest.xml file must specify the assembly name, control name(s), and configurable properties (if any) for each control. The control name (ControlFullName) is the public class name, and is prefaced by the assembly name (separated by a period (dot)).

To improve app deployment and performance, you can exclude files that are not required for deployment to run-time nodes, such as files that are only needed for configuration and those available as shared library components. The files you specify under ExcludeFilesFromDeployment are not deployed to the run-time node. The AppManifest.xml itself is never deployed.

The structure of the AppManifest.xml file is as follows:

AppManifest Structure
Copy Code
<Filters>
  <Control AssemblyName="ArchestrA.Apps.MyOMIApp" ControlFullName="ArchestrA.Apps.MyOMIApp.MyControl">
     <Property Name="ShowCommandBar" />
     <Property Name="ShowNavigateToAsset" />
     <Property Name="ShowAreaHierarchy" />
  </Control>
</Filters>
<ExcludeFilesFromDeployment>
     <File Name="aaAFCommonTypes.dll" />
     <File Name="ArchestrA.Core.dll" />
     <File Name="ArchestrA.Security.dll" />
</ExcludeFilesFromDeployment>
  <Editor EditorFullName="ArchestrA.Apps.MyOMIApp.Editor.OMIEditor" AssemblyName="ArchestrA.Apps.MyOMIApp.Editor">
   </Editor>

Note that the EditorFile name is the AssemblyName with a "dll" suffix. The EditorFullName is the fully qualified name of the class that implements the editor. For information about versioning, see App Development Best Practices. The following example AppManifest file is for the Title Bar App.

Example AppManifest.xml
Copy Code
<?xml version="1.0"?>
<AppManifest AppVersion="6.0.0" ToolkitVersion="2.0.0" DesignTimeVisible="true">
  <Filters>
    <!--List all the Controls that need to be exposed to the ArchestrA IDE user to utilize them in a View Application.
    Only the controls listed here will be available for the IDE users to place them on panes within a Layout or a ViewApp.-->
    <Control  AssemblyName="ArchestrA.Apps.TitleBarApp" ControlFullName="ArchestrA.Apps.TitleBarApp.TitleBarControl">
      <!--List the public properties on this control that need to be exposed when user is configuring this control in a Layout or
      a ViewApp. The Property Editor within the Layout Editor and ViewApp Editor includes these properties when this control is
      selected and allows the user configure new default values.-->
      <Property Name="Foreground"  />
      <Property Name="Background" />
      <Property Name="PrimaryFontFamily" />
      <Property Name="PrimaryFontSize" />
      <Property Name="HasSecondary" />
      <Property Name="SecondaryFontFamily" />
      <Property Name="SecondaryFontSize" />
      <Property Name="Title" />
      <Property Name="HomeArea" />
      <Property Name="NavigationTitleArea" />
      <Property Name="KeyboardArea" />
      <Property Name="LoginArea" />
      <Property Name="LanguageArea" />
      <Property Name="DateArea" />
      <Property Name="TimeArea" />
      <Property Name="DateTimeArea" />
      <Property Name="CanCloseViewApp" />
      <Property Name="CanMinimize" />
      <Property Name="CanMaximize"  />
      <Property Name="CanClose"  />
    </Control>
  </Filters>
</AppManifest>