Object-Oriented development in LotusScript
Even though IBM posted an article regarding OO development in LotusScript back in 2001(!) on their developerWorks web site, I am still amazed as to how many Lotus application developers choose to avoid using custom made classes today. I discovered there are two major reasons for that:
- There is no helper support for custom made classes in Lotus Designer, which is a disturbing factor.
- Developers are not familiar with OO development guidelines and techniques.
All I can advise to anyone is to do it now. It is absolutely worth it as your code will be easier to understand and easier to maintain. Also, release of Lotus Notes/Domino 8.5 is nearing and it will finally bring user friendly tools and helpers for custom classes in Lotus Designer (or so it is advertised).
For those not familiar with OO guidelines and techniques, there are some great articles about it on the Internet and Wikipedia. Dive in.
N.B. Please, don’t over-engineer your code. it really is not necessary to write a class for each and every agent/script library you write.
April 23rd, 2009 at 07:13
When I first started doing Notes development, I used Formula Language for everything. Then I graduated to Lotusscript and a whole new world opened before me. Back then, it was difficult to find articles or external assistance on how to take advantage of custom classes in Lotusscript, so it took me a while to seriously begin implementing OO principles into my coding. Once I did, though, there was no looking back, and expanding my skills to include Java was an easy transition. The point of all this is that I disagree with the final comment in your post. Taking EVERY advantage you can to implement your own custom classes will facilitate your progression into more advanced programming. As an Applications Manager, one of the first questions I ask applicants is whether or not they have any experience coding custom classes. I’ve hired or made offers to everyone who answered yes. Unfortunately, more often than not, the answer is no.