Latest Updates

Products & Applications

Showtime
My Blackberry Enterprise Server Push Utility for the Lotus Notes Client, allows you to create Jobs for individual Channel, Message, and Browser Content Pushes, as well as allows you to delete Pushed Channel Icons from defined recipient devices.

Time Tracker
The idea is simple. At the start of your day - upon completion of your first task - create an entry highlighting what you did and whether you feel it was an efficient or inefficient use of your time. Based on several requests, you can also select the priority, apply categories, or even align your time against a project.

For Lotus Notes Client v8.0 and above, you can use the Time Tracker Widget to make this process even easier!

Zephyr
My Configuration-based Rich Text Mail Merge and Emailing Utility, Zephyr allows you to create rich, data-driven emails to support automated workflow - all via Microsoft Word Mail Merge-like architecture. Dear <firstname> allows you to personalize each email message not only to the individual recipient, but also to the individual application workflow event!

xCopy
xCopy is a simple configurable xCopy client for the Lotus Notes client. By creating and defining xCopy Profiles, you can batch process your file backup or remote upload jobs. With the addition of the xCopy sidebar widget, you can easily kick-off these jobs, and modify both the xCopy Profiles and xCopy itself.

Community & Resources

Lotus Technical Information & Education Community

The Lotus Technical Information & Education community is comprised of IBM, business partner, and customer subject matter experts who use product wikis, published articles, white papers, community blogs and the latest in social media to build and share high quality technical content.

OpenNTF.org - Open Source Community for Lotus Notes Domino

OpenNTF is devoted to enabling groups of individuals all over the world to collaborate on IBM Lotus Notes/Domino applications and release them as open source.

developerWorks Lotus : Wikis

Share your deployment experiences and best practices in our wikis and help IBM to create scenarios for successful deployments. Contribute to the community by collaborating on shared content and leverage the shared knowledge from that community.

Multiple NotesDatabases for Function-specific IBM XPages Application User Interfaces

10/24/2012 09:27:00 AM by Chris Toohey

I'm working on a project which requires an XPages-based CMS for managing external website content. The UI for this CMS is written using core and extension library controls, and thus uses the OneUIv2.1 theme.

The external website itself uses a completely custom theme that disables all Dojo libraries and instead loads in Twitter Bootstrap and JQuery to deliver a Responsive Web Design user experience.

The problem I immediately ran into was the all-or-nothing (save some major hackery) of Themes and disabling Dojo libraries for XPages. I wanted to use XPages as a roll your own markup delivery solution, and today -- unless I'm missing something, and if I am someone please fill me in -- you cannot disable the Dojo libraries on individual XPages.

Not to mention there is a support issue to consider here. Sure, I can write my own renderers and do all of this slick hacks to get the job done... but someone has to support this in a production environment both today and a few years from now.

Thus, I decided to use two NotesDatabases to serve function-based user interfaces.

Let's take a look at the basic setup below:

Diagram: Multiple NotesDatabases serving function-specific IBM XPages application user interfaces. Diagram: Multiple NotesDatabases serving function-specific IBM XPages application user interfaces.

Using Remote Data Sources, I could easily create a secondary NotesDatabase configured to an individual function. My External UI, in this context, could use a "blank" theme (doesn't extend an existing theme) and disable all of the Dojo Client Side JavaScript libraries.

An added bonus to this technique is the additional layer of security. As there would be no way to manipulate the NotesData from the publically-accessible External UI NotesDatabase -- as all content management would be handled by the Internal UI NotesDatabase -- I could arguably better secure the external site.

I ran this technique by several other XPages developers to see if I was completely out of my mind when I architected this or if this was - unbeknownst to me - already an established Best Practice. The good news is that everyone at least liked the idea...

Now, something to keep in mind: I'm not recommending this for every XPages-based application. In fact, I'm not even recommending this for Web Browser vs. Mobile Device Browser (ie., client-sensitive) XPages applications. That's an entirely different subject worthy of an individual (if not a series) of posts.

I'm simply pointing this technique out as a option for those of you needing to deliver completely unique user interfaces based on desired function. In my particular case, I had to develop an XPages-based CMS, and I had to develop an XPages-based solution for delivering the desired content (CSS and JavaScript Frameworks, et al).

Your mileage may vary...

So is this a technique that you could use with a project you're working on? Is this something that makes sense to you from a maintenance and support standpoint? Let me know in the comments below.

Share/Like/+1 if you find it useful and want to share.

And expect more posts from this site as well as some major changes in store for celebrating our upcoming 10 year anniversary!

 
Sven HasselbachName:Sven HasselbachWebsite:http://blog.hasselba.chComment

You can disable Dojo per XPage by adding some SSJS code in the beforeRenderResponse event:

facesContext.getRequestParameters().setJsLibrary(0);

(More details can be found here)

Chris TooheyName:Chris TooheyWebsite:http://www.dominoguru.com/Comment

Good point, Sven!

Toby SamplesName:Toby SamplesComment

I actually had to do this recently because I couldn't really turn off the theme on certain pages, The solution turned out fine, but it was slightly annoying that I had to house the UI in two different Apps.

Fredrik StöckelName:Fredrik StöckelComment

Nice! I'm using the same approach in 2 of current projects. I think this is an ok way to meet specific requirements and at the same time utilize the strong dynamic parts of xpages - especially if its an external public project. The added security layer is a bonus :) 

Karsten LehmannName:Karsten LehmannWebsite:http://blog.mindoo.comComment I think we are a bit extreme here.
We tend not to use a single XPage in our projects for the UI. We have stateless REST APIs on the server, developed in Java, either with code in NSF or in Eclipse plugins.
The web UI is either based on Dojo 1.8 or Ext.JS with additional tool libraries and leverages a classloader like AMD to structure the frontend code into different classes with class inheritance and other design patterns.

Stateless APIs make testing a lot easier.
We don't really see a sense in storing a lot of state for each user on the server, which fills memory, might get lost on session timeout with ugly Javascript errors and produces scalability issues that IBM solved by serializing date to disk between requests.
I am not sure if just disabling Dojo libraries and still using XPages for the UI would help a lot. A lot of the XSP libraries depend on a specific Dojo version and it's unlikely that a lot of stuff still works (e.g. partial refresh and validation). It's more or less a hack. If you generate the whole page on your own, you know exactly what you are doing and you can even make the page available for offline users.

(not published)




Evaluate this Formula: @LowerCase(@Text("FOO"))