Employing AppServer Made Easy

Many companies are contemplating to use AppServer, but are deadly afraid of doing so. Here are some thoughts about how to make developing and maintaining AppServer applications easy and very feasible.

There are three main issues I encountered over the years:

a) Increased Development Time:

I used to think, that the top-main issue that AppServer novices run into is the amount of time it takes to get a program working, if the back-end is on the AppServer, which the front-end is using to access data.
This is a really serious problem, if somebody tries to develop the application in disconnected mode. If you too tried this, you know this doesn't work. The development has to happen in two phases: first get the logic straight, and all the components working correctly in fat-client mode. Then, as a second step, install the back-end on the AppServer, and test the application in disconnected mode. Usually, that second phase can be accomplished in a relatively short time – since all we need to worry about now is to ensure that the data-transfer is performed correctly.

An experienced AppServer developer should be able to show you fairly easily and quickly how to develop in connected mode, and then migrate the result to disconnected mode without major difficulties.

b) Programming Style:

Over time, I came to believe, that the real obstacle to using AppServer is the developers' programming style. At several of my recent contract projects I noticed, that many developers are still using the top-down, spaghetti style of the late 80s! And these are not people that fell off the turnip truck at all, but highly intelligent and skilled programmers. I guess, this is so, because so many of us have started out using OpenEdge in the 80s and 90s – at a time when host-based computing was the style of the industry. And, once a style is established in a shop, it takes often an act of God (speak: a serious crisis of some sorts) for it to change.
And of course, if you never have had the chance to really learn about structured programming, and/or play with the concept, you'll have a real hard time implementing a reasonable separation of UI from logic and data-access.

But, there's good news here, too. I believe, that any reasonably capable top-down programmer can learn the structured programming approach within a rather short period of time – given the proper guidance and mentoring.

c) Testing:

The final issue I would like to address here – as it is even more helpful with a thin-client app as it is for a fat-client one – is the issue of testing. It is my experience, that whenever I write a test-program for my back-end programs, their level of quality and their maintainability increases dramatically! The initial version of the program is more stable. And subsequent changes can be implemented without horrible regression risk.
Frankly, I don't understand how any serious development group can get by without test-programs for their logic and data-access programs. I know, however, that most of the Progress shops don't use them. But wherever I go, I see plenty of pain and suffering, headache and turmoil that could have easily prevented using simple test-programs.
I think, the main reason for folks not having adopted this approach (which, BTW, is common practice in the JAVA, C++, Objective C worlds), again, is the fact that most OpenEdge developers are still programming in a top-down style – which is almost impossible to thoroughly test.

Here, too, are good news: A consultant, experienced in creating test-programs, can get a progress shop up-to-speed in a short time. After all, it is not rocket-science, but simple ABL programming. And, to make it even easier, Flavio Cordova created a little tool “ProUnit”, which allows you to automate the execution of the test-programs.

Conclusion:

After working with AppServer for 10+ years, I find some simple Best Practices – both in the programming style, and the overall development approach – can keep the development and maintenance overhead of thin-client development at about 5% - 10% of the overall effort for the fat-client version . Also, any reasonable capable ABL programmer can learn to produce great AppServer code, given some guidance and mentoring.

With those obstacles removed, there is no real reason for any shop NOT to use AppServer! I'm happy to help...

Foot Note:

Please let me know if you need more information or help with any of the aspects mentioned above. Also, if you would be kind enough to provide feedback about this posting - depth, length, clarity/understandability – I would be very grateful. That way I can try to make it better next time...
Thank you and good luck making the worlds best application using OpenEdge!

Thomas Hutegger
tmh 4t samt-consulting d0t com
www.smat-consulting.com