Lotus, Sound, and Life

Finally Did Our First XPages App w/ the ExtLib Library

Tripp Black  May 4 2011 03:51:49 PM
I haven't been able to play with XPages Extensions library out of OpenNTF that IBM donated.

Unfortunately, its update site wouldn't install into my Designer on my Windows 7 machine. So I thought I would have to wait until 8.5.3 when I hear it's going to be included in the base product. That is, until I did my enablement for the new XPages advanced development class. (I teach. Great class, BTW.)

So I downloaded the new build and about an hour later I had the library in my Designer client and on our development and production servers.

I finally got to play and see what the demo application can really do. The demo library is quite excellent for code snippets and techniques. But, it's pretty lacking as a full demo application.  It really should be the cool tips and code snippets app. A demo app to me is a mostly more vs less demo app written that you can use and then reverse engineer and see fully how the demo app is built.

Still, for the most part, we figured it out in a couple hours. We created our first application with the library, you can see it here:
http://www.southmainstudios.com/MWSMSNameLists.nsf
(Just don't use your iPhone/mobile - see below)

My main thoughts on the library and the "demo" app ...

1. They did a great job of GUI vs data separation. The controls are well labeled in their XPages on what they are intending. However, the implementation for the layout is in the control, which I like, but it definitely, shall we say a little raw. The controls typically use property definitions and properties, but not navigation as much. You don't do navigation as properties/arguments in the All Properties. You actually build your data trees for the menus not in lists (file resources) but within the OneUILayout control - this part is nice.  But the bad part - you do it ONLY in source.  As for navigation, each page had a navigational name/alias passed which tells the tree tree what option to show selected. Very nice.

2. The search demo with the drop down is nice and it shows how the search is passed w/o using the URL to the search page, but they didn't bother to finish the demo to actually have it do a search. I had to watch what was happening in Firebug in Firefox and figure out what controls were publishing/passing and then just do it. It ended up being quite simple. They key are the the two fields in the results XPage that contain the "c1"/"c2" and "name" variables passed. Just create a view panel, use the view panel data category key property or do a search formula in the search property. I'll be posting the XML source in our Mindwatering Support library along with the other XPages tips/notes.

It reminded me about my first apps as a newbie Domino developer. I was constantly "fighting" with Domino because it did so much for us. I came from the MS VB side where you constructed everything yourself. It was a very different paradigm switch. You had to know where to add just a few lines of code to leverage Domino. I know other developers who never bothered to learn how to leverage. They clicked the checkbox in the Database Properties to have it not generate JavaScript code and let it just be a database store.

You have to look at what's being generated to figure out how to plug-in to the library's extension points to use the last term liberally.

3. The mobile XPages don't work. They don't work locally on the workstation or on our server. They are obviously incomplete, but they don't give me enough info, on how to "finish" them. The documentation is still "To Be Done". The XPages just display a white empty page on our iPods and iPhones. We separate Mobile controls demo application from OpenNTF works, but that doesn't help you know where to plug-in to this ExtLib library and integrate it. That's going to take more time, this is not yet completely RAD.
< 2011/07 - Update. You're supposed to use the mobile tools as a separate NSF for the mobile devices and then do a hand-off based on the browser detection you do at load. >

4. There are lots more toys. (a.k.a custom controls).
My control sidebar palette looked pretty sparse before. Now there are lots of toys to play with. :-)

Evidently even more exciting stuff is coming in 8.5.3!
Cannot wait to see it and next gen Domino9.