Automating Encompass SDK Upgrades

Follow the steps below to automate Encompass SDK upgrades and help ensure that your SDK application continues to work properly after an Encompass software upgrade. Note that your SDK application must utilize the Encompass SmartClient in order to complete these steps.

Deploying an EncompassObjects Application

Whether you are deploying your application to your users' desktops, to a web server or packaging it for retail, understanding how to properly deploy your EncompassObjects-based application is critical. Failure to follow the guidelines below can lead to your application becoming inoperable within certain customer environments or when you (or your customer) upgrade to a new version of Encompass.

When you package your application, you must follow these rules:

Rule #1: Include only the API Runtime Services DLLs

The SDK ships with a large number of DLLs that are required for the execution of your application. However, you should package or deploy only two of these DLLs with your application:

  • EllieMae.Encompass.Runtime.dll
  • EllieMae.Encompass.AsmResolver.dll.

These two DLLs are version independent and will work with future versions of Encompass. They contain the necessary logic to ensure that your application can find and use the other, version-specific DLLs already installed on the user's computer. In particular, do not deploy the EncompassObjects.dll or any of its dependencies with your application.

Rule #2: Place Runtime Service DLLs in the same folder as your EXE

The two DLLs mentioned in Step #1 should be installed alongside your application, in the same folder as your program's executable (EXE). If you are deploying an ASP.NET application, these assemblies should be placed in your application's bin folder with your other compiled assemblies.

Rule #3: Ensure the target machine has the Encompass SmartClient, Server or SDK installed

Because you are not shipping the EncompassObjects assembly or its dependencies with your application, each machine on which it runs must have either the Encompass SmartClient, Encompass Server or Encompass SDK installed.

In general, you should avoid installing the SDK on machines that already have the Encompass SmartClient unless the machine is used for development purposes. The API Runtime Services will prioritize the assemblies installed with the SDK ahead of those installed by the SmartClient when loading assemblies at runtime. This behavior can cause problems when the Encompass Server is upgraded to a new version of Encompass. When a server upgrade occurs, the Encompass SmartClient automatically downloads and installs the updated API components for that version. As a result, if your application utilizes those assemblies thru the Runtime Services, it will also be upgraded without the need for you to intervene.

On the other hand, if you install the Encompass SDK on the machine, you will be required to upgrade the SDK to the correct version of Encompass with each Encompass server update. Because the EncompassObjects assembly is version- dependent, it will only work with the same version of the Encompass Server service. Until the SDK is upgraded (or uninstalled), your application will not be permitted to connect to the upgraded Encompass Server.