How do you manage different deployment platform targets?

Posted by aswindel on 07-Nov-2007 08:03

Within your current development environment, do you have the situation where you need to maintain your application targeted for different OpenEdge runtime versions and platforms, and if so, how do you manage this productively? How do you manage applying changes across application / platform / runtime versions? How do you test for the different target platform / OpenEdge versions, how do you package deployments, how do you debug, how do you control not adding new features that will not work on older OpenEdge runtime versions, etc.

We are thinking of possible ways within OpenEdge Architect to make all this easier and would like to hear your input as to how big a problem this is to solve, how you have solved it, and what ideas you have for ways to improve things.

Thank you in advance. Anthony

All Replies

Posted by Stefan Drissen on 16-Nov-2007 19:13

Yes, we have a 'situation' in which we need to maintain multiple things.

Clients:

- Progress 9.1E

- OpenEdge 10.0B / 10.1A / 10.1B

Databases:

- Progress 9.1E

- OpenEdge 10.0B / 10.1A / 10.1B

- Oracle8i / 9i / 10g (using Oracle DataServer)

- SQL Server 2000 / 2005 (using SQL DataServer)

- DB2/400 (using Progress/400 DataServer - being phased out)

Platforms:

- GUI (Windows)

- WebSpeed (Windows / Linux / Unix )

- AppServer (Windows / Linux / Unix )

To keep this all flying we develop using the smallest common denominator. This means that everything must work with 9.1E (with a few exceptions). No use of Progress curiosities concerning database field lengths (ie X(8) <> a display format).

On our latest release nearly all sources (main exception being the GUI renderer) are compiled with the Windows character client. That means that 9.1E for all 9.1E stuff and 10.0B for all 10.0B / 10.1A / 10.1B stuff. A larger and larger source base is also being compiled without database connections - and is therefore generic for all database platforms.

Current deployment set (figures for 9.1E / 10.0B):

- ef-uip.pl + ef-ui.pl (approx 2mb / 2mb - per database platform)

- ef-blp.pl + ef-bl.pl (approx 115mb / 140mb - per database platform)

- ef-bpp.pl + ef-bp.pl (approx 30mb / 40mb)

So the basic trick is one source base for the lowest common denominator. Nightly compile runs ensure that compile time everything is still working.

Sources are managed in a sub-directory fashion on a file server: work / test / approve / done.

Testing is biased towards using an Oracle / SQL Server database since they generally are more picky than OpenEdge.

This thread is closed