Migrating Windows and Windows Mobile Applications to 2.1 ESD #2

These changes are required for Windows and Windows Mobile applications being migrated from a version earlier than 2.1 ESD #2.

Update and rebuild your application:

  1. The Application APIs (in the Application class) are required for managing application registrations, connections, and context. Rewrite the initialization code in your application to use the Application APIs.

    For information on the Application interface, search for Application APIs in the Developer Guide for your platform.

  2. Callbacks related to application events are now contained in a separate ApplicationCallback interface. Rewrite your application code to use this interface.

    For information on the ApplicationCallback interface, search for Callback and Listener APIs in the Developer Guide for your platform.

  3. Replication-based synchronization clients require two data channels: a data channel for data synchronization, and a messaging channel for sending registration and push notifications to the client. Update your port configuration for both channels. See Sybase Control Center for Sybase Unwired Platform > Administer > Unwired Server > Server Properties.
  4. To continue using server-initiated synchronization, you must write code for handling notifications. If change notifications are enabled for synchronization groups, you can implement the onSynchronize callback method to monitor this condition, and either allow or disallow default background synchronization.
    public int OnSynchronize(GenericList<ISynchronizationGroup> groups, SynchronizationContext context)
    {
      int status = context.Status;
      if (status == SynchronizationStatus.STARTING_ON_NOTIFICATION)
      {
        // There is changes on the synchronization group
        if (busy)
        {
          return SynchronizationAction.CANCEL;
        }
        else
        {
          return SynchronizationAction.CONTINUE;
        }
      }
    
      // return CONTINUE for all other status
      return SynchronizationAction.CONTINUE;
    }
  5. In 2.1 ESD #2, the new location of the required libraries is <UnwiredPlatform_InstallDir>\UnwiredPlatform\MobileSDK\ObjectAPI.

    Rebuild your project as follows:

    1. Reset the references of the following libraries for the appropriate device platform in the Visual Studio project according to the new location:
      • For Windows Mobile:
        • sup-client.dll – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\WM.
        • iAnywhere.Data.UltraLite.dll – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\WM\Ultralite.
        • iAnywhere.Data.UltraLite.resources.dll (several languages are supported) – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\WM\Ultralite\<language>.
      • For Windows:
        • sup-client.dll – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\Win32.
        • iAnywhere.Data.UltraLite.dll – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\Win32\Ultralite.
        • iAnywhere.Data.UltraLite.resources.dll (several languages are supported) – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\Win32\Ultralite\<language>.
    2. Remove the following libraries for the appropriate device platform as items in the Visual Studio project. The libraries are no longer required.
      • For Windows Mobile:
        • ulnet11.dll
        • mlcrsa11.dll (if HTTPS protocol is used)
        • PUtilTRU.dll
      • For Windows:
        • ulnet11.dll
        • mlcrsa11.dll (if HTTPS protocol is used)
        • mlczlib11.dll (if using compression)
    3. Add the following libraries for the appropriate device platform as items in the Visual Studio project. Set the "Build Action" to Content and "Copy to Output Directory" to Copy always.
      • For Windows Mobile:
        • ulnet12.dll – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\WM\Ultralite.
        • mlcrsa12.dll (if HTTPS protocol is used) – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\WM\Ultralite.
        • mlczlib12.dll (if HTTPS protocol is used) – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\WM\Ultralite.
        • CMessagingClient.dll – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\WM\<DeviceType>. <DeviceType> can be Pocket PC or Smartphone as applicable.
      • For Windows:
        • ulnet12.dll – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\Win32\Ultralite.
        • mlcrsa12.dll (if HTTPS protocol is used) – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\Win32\Ultralite.
        • mlczlib12.dll (if using compression) - from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\Win32\Ultralite.
        • CMessagingClient.dll – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\Win32.
        • ECTrace.dll – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\Win32.
        • TravelerLib.dll – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\Win32.
        • zlib1.dll – from <UnwiredPlatform_InstallDir>\MobileSDK\ObjectAPI\Win32.