Saturday, July 9, 2011

How to Win the XPages Development Contest


The OpenNTF Alliance is currently running a contest for development of the best reusable Xpages controls.  The controls must be submitted by August 19th, and the 3 winners will each receive an iPad.  If you use my suggestion below and win, all I ask is that you send me the Apple stickers that come with the iPad. :-)

The contest is going to use the following criteria for judging submissions.
  1. Reusability, consumability and documentation
  2. "Wow" factor and completeness of solution
  3. Overall business value
  4. Special consideration will be given to developers new to XPages and OpenNTF
  5. Originality factor: Only the actual new code will be considered to make sure contributions add value and actual source code rather than only re-using existing source code.
 Here's my recipe for winning the contest.  If you follow this recipe and don't win, then I'll owe you some Apple stickers. :-D

Sametime now comes with something called the Browser Client Toolkit.  It includes a number of UI widgets based on the Dojo Toolkit that allow you to surface Sametime functionality on a web page.  These include:
  • WebClient
  • Awareness
  • QuickFind
  • Livenames
  • Chat
  • GroupChat
  • UserInfo
  • Business Card


The contest page suggests there are "many Dojo widgets that could nicely be wrapped up in reusable XPages controls."  My suggestion is to do that to all of these Sametime widgets.  The Livenames widget has already been transformed into a control, and that example can be found in the XPages Extension Library.

Why should this be a winning recipe?  Well, let's look at it in light of the criteria.
  1. Reusable, consumable:  are there situations in which these controls could be reused?  Absolutely!  Having these controls would make XPages the supreme CEBP development platform
  2. Wow factor.  The new Sametime web client has a ton of cool functionality.  The wow factor of being able to leverage all of these widgets within an XPages application could not be denied!
  3. For an explanation of the overall business value of CEBP, see my previous blog post that talks about how easy it is to bring CEBP functionality into traditional Notes applications.
  4. I don't know if you're a new developer, but hopefully the fact that these widgets are based on the dojo toolkit, at that there is a working example you can look at in the XPages Extension Library, will make this a relatively small hurdle to jump.
  5. Originality factor: to my knowledge, only the Livenames widget has been converted into a custom control, so you should have no issue here.
Having been removed from Domino development since R5, my skills are way too rusty to give this a shot on my own, so I put this out there to the community because I think the addition of these controls would provide great value to us all.

Here are some additional resources to help you out:
  • Lotusphere presentation AD306: IBM Lotus Sametime Proxy: A Collaborative Recipe for Success
  • Sametime 8.5.2 SDK. Once you've downloaded and expanded the SDK, you'll find the documentation in the following directory (st852sdk/client/stproxy/doc/STBrowserSDK.pdf).
  • Example of building a custom control.  (Honestly, I thought there'd be better documentation on how to create a custom control.  Perhaps it is all pretty straightforward and it is just that my dev skills are SO out of date.)
Good luck!  I'll be watching the mail for my new Apple stickers.