Your Development & Design Resource

Join the Evolution!

While writing my presentation for developer2010 -- Using MVC architecture to take your XPages applications to the next level -- I decided to add a section titled Evolution vs. Revolution.

In this part of the session, I discuss the real world implementation scenarios of the techniques and practices discussed. In other words, I want to express to the attendees that this -- the shift to an MVC architecture -- can be achieved project by project, and not require vast rewrites of existing IBM Lotus Notes Domino applications.

It will, of course, stress this main point:

Moving from 'legacy' Design Elements (such as Forms, UI Views, and Agents) to Java, SSJS, and XPages is not a needed Revolution, but an Evolution of IBM Lotus Notes Domino Application Development.

Legacy Design Elements, Batman!

For example, I write my basic MVC Controller as a LotusScript Library - complete with a custom RESTful API for NotesDocument CRUD operations. Most developers could do the same if they so desired:

Function apiPOST(doc As NotesDocument) as NotesDocument
    Set apiPOST = Controller(doc, "POST")
End Function

I then show how you can duplicate the same Function with a Java Script Library:

public Document apiPOST(Document doc) throws NotesException {
    return controller(doc, "Post");

Evolution doesn't happen overnight, but is instead a rather slow but often constant process. That's the idea here: I don't want you to abandon everything you know, but rather envelope new tools and techniques to strengthen both your skills and your product!

... so what am I getting at? Well, Tim Tripcony talks to logical fallacies, and I think a rather big one is at work in the IBM Lotus Notes Domino development world: Java, SSJS, and XPages development is difficult, non-RAD, and confusing... because I don't know it.... because it's difficult, non-RAD, and confusing.

IBM Lotus Notes Domino development in Java is becoming even easier, and is certainly giving us developers more and more capabilities than could ever be achieved with LotusScript, just like LotusScript had given us so much more than simple @Formula.

The problem I think most of us face is time. Time, and a concern that we don't know something.

I'll bet you're considered the go-to person in your organization. If someone needs something done, you're the geek that knows how to get it done. You can quickly write a LotusScript Agent or a simple @Formula that unclogs the toughest clogs and gets your customers productive again.

Staring at something new when you're bearing such a responsibility on your shoulders is frustrating... so I've been thinking about ways that we could evolve our collective skills vs. revolutionize (which is often thought of abandoning the current and wholly embracing the new).

So, for my part, I've decided that I'm going to alter my writing style.

Every tip, every article, and every entry where I showcase some uber-slick technique or feature which uses @Formula, LotusScript, and other legacy Design Elements or techniques will come complete with a Java, SSJS, and/or XPage counterpart.

I'll consider this future-proofing my posts, while doing my part to help with the evolution.

Do you run a blog or produce technical articles? I suggest you consider joining me in this future-proofing effort. And if your a reader of this site, let me know your thoughts on this new decree: do you think showing an evolved counterpart will help you embrace these new technologies and techniques?

About the author: Chris Toohey

Thought Leadership, Web & Mobile Application Development, Solutions Integration, Technical Writing & Mentoring

A published developer and webmaster of, Chris Toohey specializes in platform application development, solutions integration, and evangelism of platform capabilities and best practices.

More from is powered by IBM Notes Domino XPages & hosted by Prominic.NET

Contact Us

Use our Contact / Feedback form or one of these email addresses:

Creative Commons License

Except where otherwise noted, by Chris Toohey is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.