Generating Windows or Windows Mobile Application Project Code

After developing the mobile business objects (MBOs), generate the *.cs files that implement the business logic and are required for Windows and Windows Mobile development.

Prerequisites
You must be connected to Unwired Server and the server-side (run-time) enterprise information system (EIS) data sources referenced by the MBOs in the deployed project before you generate object API code.
Task
  1. From Unwired WorkSpace, right-click in the Mobile Application Diagram of the project for which you are generating code and select Generate Code.
  2. (Optional) Enter the information for these options:
    Note: This page of the code generation wizard is seen only if you are using the Advanced developer profile.
    Option Description
    Select code generation configuration Select either an existing configuration that contains code generation settings, or generate device client code without using a configuration:
    • Continue without a configuration – select this option to generate device code without using a configuration.
    • Select an existing configuration – select this option to either select an existing configuration from which you generate device client code, or create a new configuration. Selecting this option enables:
      • Select code generation configuration – lists any existing configurations, from which you can select and use for this session. You can also delete any and all existing saved configurations.
      • Create new configuration – enter the Name of the new configuration and click Create to save the configuration for future sessions.

        Select an existing configuration as a starting point for this session and click Clone to modify the configuration.

  3. Click Next.
  4. In Select Mobile Objects, select all the MBOs in the mobile application project or select MBOs under a specific synchronization group, whose references, metadata, and dependencies (referenced MBOs) are included in the generated device code.
    Dependent MBOs are automatically added (or removed) from the Dependencies section depending on your selections.
    Note: Code generation fails if the server-side (run-time) enterprise information system (EIS) data sources referenced by the MBOs in the project are not running and available to connect to when you generate object API code.
  5. Click Next.
  6. Enter the information for these configuration options:
    Option Description
    Language Select C#.
    Platform Select the platform ( target device) from the drop-down list for which the device client code is intended.
    • .NET Framework for Windows
    • .NET Compact Framework 3.5 for Windows and Windows Mobile
    Unwired Server Specify a default Unwired Server connection profile to which the generated code connects at runtime.
    Server domain

    Choose the domain to which the generated code will connect. If you specified an Unwired Server to which you previously connected successfully, the first domain in the list is chosen by default. You can enter a different domain manually.

    Note: This field is only enabled when an Unwired Server is selected.
    Page size

    Optionally, select the page size for the generated client code. If the page size is not set, the default page size is 16KB at runtime. The default is a proposed page size based on the selected MBO's attributes.

    The page size should be larger than the sum of all attribute lengths for any MBO that is included with all the MBOs selected, and must be valid for the database. If the page size is changed, but does not meet these guidelines, object queries that use string or binary attributes with a WHERE clause may fail.

    Note: This field is only enabled when an Unwired Server is selected. The page size option is not enabled for message-based applications.
    Namespace Enter a namespace for C#.
    Note: The namespace name should follow naming conventions for C#. Do not use ".com" in the namespace.
    Destination Specify the destination of the generated device client files. Enter (or Browse) to either a Project path (Mobile Application project) location or File system path location. Select Clean up destination before code generation to clean up the destination folder before generating the device client files.
    Replication-based Select to use replication-based synchronization.
    Message-based Select to use message-based synchronization.
    Backward compatible Select so the generated code is compatible with the SUP 1.2 release.
  7. (Optional) Select Generate metadata classes to generate metadata for the attributes and operations of each generated client object.
  8. (Optional) Select Generate metadata and object manager classes to generate both the metadata for the attributes and operations of each generated client object and an object manager for the generated metadata.
    The object manager allows you to retrieve the metadata of packages, MBOs, attributes, operations, and parameters during runtime using the name instead of the object instance.
  9. Click Finish when done.
    The class files include all methods required to create connections, synchronize deployed MBOs with the device, query objects, and so on, as defined in your MBOs.

    By default, the MBO source code is generated in the project's Generated Code folder.


    Code Generation

    The Dlls folder contains all the referenced libraries.

    If present, the doc folder contains generated code documentation.

    The src folder contains generated *.cs files. In this example, code was generated for the Customer MBO:

    The frequently used files in this project, which you can view by double-clicking the file, include:
    Source Code File Descriptions
    .cs File Description
    Project file, in the format projectName.csproj The project file of the generated code, for example, SUP101.csproj.
    MBO class (for example, Customer. cs) Includes all the attributes, operations, object queries, and so on, defined in the MBO.
    Metadata class (for example, CustomerMetaData.cs) Includes attribute and operation metadata.
    Synchronization parameter class (for example, CustomerSynchronizationParameters.cs) Includes any synchronization parameters defined in this MBO.
    Key generator classes (for example, KeyGenerator.cs) Includes surrogate key generator used to identify and track MBO instances and data.
    Personalization parameter classes (for example, PersonalizationParameters.cs) Includes any defined personalization keys.
    Connection and synchronization classes (for example, SUP_101DB.cs) Includes the Unwired Server connection information and synchronization methods