Out with the Old, In with the Old, Building your Domino Web Application using DX Objects
Building a Web application on HCL Domino can be challenging because there are so many ways of creating a Web application. There is just no design pattern to follow or best practices. This is good for us who like to experiment, but bad for developers who just want to follow an official approach. You can use XPages, classic Domino Web with Pages, computing fields and computed text with formula language or you can create apps using REST APIs with LotusScript, Java , DAS (please no) , view read entries or even DRAPI as Paul Withers has demonstrated on his blog, https://paulswithers.github.io/blog/2024/08/15/xpages-web-1/
However, there is little talked about a very old technique that dates back to the beginnings when Domino became web enabled. As part of my data visualization session demo at Engage 2025, I used this technique to generate the web pages and dashboards.
This technique allows you to separate the form, data and business logic and creates a standardize design pattern for one to build web applications. XPages is the only other approach that comes close in enforcing a design pattern.
So what is this technique? A few years ago, I was looking for a way to create a blog for our web site that we had full control. Our Wordpress site was hacked even before we were finished because of vulnerabilities in plug-ins and later it was discovered that the large hosting company did not properly secure passwords. Go figure. But all too familiar.
I attempted to use the Domino Blog template as a replacement. However, trying to modify the Domino blog template was a journey of frustration and a series of futile actions. I truly believe in the separation of form, data and business logic and the Domino Blog template is another example to the contrary. As I dug deeper into the code there was a technique in generating web pages that I had not seen or hear of before.
I coined the phrase DX Objects for this technique. The approach is quite simple but powerful. Each web page is represented by a Web Navigator/Form pair that forms together as a Web page container. Located in each form is a Rich Text Field called html along with other CGI fields that you want to include. Put these all into a sub form.
And here is the results of demo01 page.
- Integration to more up-to-date Dojo/custom widgets or widgets created with React, Vue or other frameworks
- HTML output that inhere to HTML 5 standards
- Incorporate complex business logic
- Add better access control for REST API based applications
- The web content can easily excess the 32K limitations
Comments