OpenEdge client deployment using Windows installers (part 1)

When it comes to client deployment, the OpenEdge documentation is rather light. In this blog post, we'll see how to bundle an application with a client networking licence in a single Windows installer.

The advantages of this kind of deployment over a separate installation of Client networking followed by dropping rcode in a specific directory are multiple :
  • No need to feed OpenEdge installer with parameters (licence code, installation directory, components and so on) : include exactly what you want, with a specific licence code, and install where you want.
  • ActiveX and .Net assemblies can be automatically registered
  • Installation can be done over Windows Update using Microsoft SMS, scheduled to every host in an Active Directory, or pushed using standard scripting processes.
  • Package creation can be easily automated : generate your installer directly from your build script !
Generating installers will require a few tools :
  • WiX version 3 : generates MSI installers from XML sources. Created by Microsoft. CPL licence.
  • .Net framework : needed by WiX
  • a working Client Networking installation. In our case, we'll use a 10.2B installation
First of all, we'll prepare the working environment. Create a new directory on your local disk, and download here those files : ClientNetworking.wxs, WixBanner.bmp, WixDialog.bmp, and EULA.rtf. Then create a Binaries directory, in which we will create this directory structure :

This Binaries directory will be the exact copy of what will be installed on target computers (this is why you could recognize a standard OpenEdge structure). Due to licencing restrictions, no link will be provided to download a working copy of the Binaries structure and files. To keep things simple, just copy every file from $DLC/bin[/winforms], $DLC/prolang/ame, $DLC/properties[/schemas] to this structure. The build script will take care of including only the needed files.

In addition to the OpenEdge standard files, we will also deploy application specific files (in myapp directory). In this example, we will just deploy a single window called mywin.r. Feel free to create any window from the AppBuilder, and save it as rcode in the myapp subdirectory.

Now we'll copy a few files from $DLC to the root Binaries directory :
  • promsgs
  • version
  • convmap.cp
  • proword.def
  • progress.cfg (this file must contain at least a Client Networking licence !)
  • startup.pf
  • runtime.ini
Update startup.pf to meet your needs, then update PROPATH section in runtime.ini to add the myapp directory (just a relative reference, doing PROPATH=.,myapp is sufficent).
Then create a myapp.bat file running your application :
set DLC=%~dp0
pushd %~dp0
start "MyApp" "%DLC%\bin\prowin32" -basekey INI -ininame runtime.ini -T "%TEMP%" -p myapp.r

You can now open your favorite shell (i.e. cmd.exe), add the Wix path to your PATH, change the working directory to the one you just created, and type the following commands :
candle ClientNetworking.wxs
light -ext WixUIExtension ClientNetworking.wixobj

If everything goes well, it will result in a ClientNetworking.msi in your current directory. Enjoy !!

The next blog posts will explain various sections of ClientNetworking.xml, and provide a few examples on how to deploy your installers.
  1. For those who want great results without the expense and hassle of visiting a dental professional, this is the perfect option for you. blanchisseur de dents
    results will not be as fast as in the dentist because the strength of the chemicals used is lower for safety reasons.

  2. I had a great experience here RĂ©paration iphone paris. I had dropped my iPhone and typing became difficult as some letters on my keypad didn't work. I took it to the Apple store but the "geniuses" told me that my phone needed a lot of work, which was too expensive. I took my phone here and they were able to quickly fix it and saved me a lot of money. Staff was also very friendly. Highly recommend.

  3. Only experience can help you improve your level. Learn to play poker is to understand and predict the game of other players. The best way to improve is therefore to play, especially in real money because the behaviors of players are very different. Without gambling money players tend to lose patience much faster, which distorts the game at gratuitpoker.net …..

  4. Went there about an hour before closing, just one guy and he seemed like he was already working on someone else’s electronics. Fixed shattered screen, he was clear about the time so I went out to get some coffee, Came back and it was ready for me. Will definitely go back Captain-repair if I need to reparation iphone ……

Theme by allblogtools.com | Blogger Templates