Try OpenEdge Now
skip to main content
WebClient Applications
Developing the Application : Compiling the application
 

Compiling the application

When you compile ABL procedures for your WebClient application, you can optimize application deployment performance by specifying Yes for the Generate MD-5 option of the Application Compiler (equivalent to using the GENERATE-MD5 option on the COMPILE statement). Progress Software Corporation strongly recommends that you use this option. When specified, this option generates an MD5 message digest, a fixed length value that is unique for the exact contents of a given source code file. If the source code of the procedure changes, compiling the file with this option generates a different message digest value. The compiler then inserts this message digest value in the generated r-code.
When you later deploy a new version of your application using the WebClient Application Assembler, the Assembler uses a series of criteria to determine if a given procedure file requires an update at existing client sites, as follows:
1. If the old and new versions of the procedure file both contain an MD5 message digest, the Assembler compares the two MD5 values. If they are different, the Assembler marks the new file as an update.
2. If neither file contains MD5 values, the Assembler compares the date and size information for each file. If they are different, the Assembler marks the new file as an update.
3. If one file contains an MD5 value and the other contains only date and size information, the two files cannot be otherwise compared. So, the Assembler assumes that the new file has changed and marks it as an update of the old file.
The MD5 value is the first, fastest, and most precise mechanism that the Application Assembler can use to compare the old and new procedure files of an application. Using this value thus enhances the performance of application assembly and deployment.
For more information on message digests, see OpenEdge Getting Started: Core Business Services - Security and Auditing. For more information on deploying an application with the WebClient Application Assembler, see Deploying an Application