Usability - Productivity - Business - The web - Singapore & Twins

Learning XPages

This entry is my reference for the collection of learning materials around XPages and adjacent technologies. I get asked a lot and in the spirit of sharing I make my recommendations public. There are a number of technologies and skills touching XPages, so it looks like a long list, but you don't need them all to get started.
  • Advanced XPages
    There is a lot more to XPages than dropping controls onto pages. Following the community (see below) will keep you tuned into all the advanced topics. Here is a small selections:
  • JavaScript
    A big part of writing good XPages applications is writing good JavaScript. The upside: regardless what platform you might use in future, JavaScript is here to stay!
    1. I found Eloquent JavaScript an invaluable resource to understand JavaScript
    2. Equally valuable is the JavaScript Garden
    3. Ensure quality of your code with JSHint
    4. Nice online reference on web development at websitesetup.org
    5. Learn Dojo (it is easier than you think)
    6. w3schools JS introduction is easy to follow
    7. You want to use Firebug for JavaScript debugging, which means you will use Firefox for development. Don't get fooled by "but our corporate standard is ...". The tools for development need to get a job done and using is a different task/use case from developing. Of course you need to test in the browsers that your users will use (and with mobile, you have more than one)
    8. Get the Dojo extension for Firebug and read its documentation. It will make your life easier
    9. An outstanding collection of JavaScript related resources can be found at SuperheroJS. Go check it out!
  • HTML / CSS
    Knowing and understanding how HTML and CSS play together is essential. It is often neglected
    1. Your visual framework might be the IBM OneUI. Make yourself familiar
    2. The second visual framework (even more popular in the wild) is Twitter Bootstrap, there is XPages support for it
    3. Of course some designer or exec will dislike it and demand a homebrew. Send him to CSS Zengarden to see how CSS can alter a page without altering the structure. The OneUI is about structure more than colors. Let the designer alter anything in the OneUI css inside the curly brackets (learn about Theme customization)
    4. Learn HTML at w3 schools (comes in HTML5 flavour too)
    5. Use the HTMLHelp online reference
    6. Make sure you know which part of HTML5 will run on what browser. Not convinced? Check the HTML5 Rocks demo, the HTML5 tutorial and HTML5 Galery. This is not your college day web anymore
  • Mobile
    There is a lot of fine details, so make sure you cover the bases
    1. Learn about the mobile controls in the Extension library
    2. Familiarize yourself with Apache Cordova (the artist formerly known as PhoneGap/Callback). XPages uses that "under the hood"
    3. Download and install the Android development toolkit. It is free, works on Linux, Windows and Mac and provides you with emulators for various screen sizes. For the iOS SDK you would need a Mac or use Genuitec's mobione. Since you build browser/hybrid apps one emulator might just work
    4. Add the Teamstudio Mobile Controls to your toolbox. Get the sources from git. The controls are great when you planning stressfree offline capabilities
    5. Picture your mobile apps on different devices to see the differences
  • Java
    There will be a point where you want to take a peek under the hood or write system wide components. Then it is time for Java
    1. Read a book: Head First Java, 2nd Edition. It is funny like the whole series and gives you a head start.
    2. Read online for free Bob's book on Domino with Java. When you are coming from a Domino/LotusScript background, the objects will be familiar and you can focus on the Java syntax
    3. Listen to and watch Paul's Intro into Java for Domino Developers
    4. Listen to and watch Tim's Climbing the bean stalk. It shows nicely how to transit from typical LotusScript functions into object oriented Java
    5. Download and install BlueJ. It allows you to interactively work with Java objects. A killer when exploring new objects
    6. Look at the source of the Extension library
    7. When you are ready to dive deeper: read Thinking in Java
    8. Java has to be effective, so read Effective Java (2nd Edition) by Joshua Bloch
    9. Check out the XSP Starter Kit
    10. Familiarize your self with OSGi Tasklets (a.k.a DOTS)
    11. Learn how to setup Eclipse to Debug XPages Java code
    12. Find Java tutorials at How to Program with Java
    13. Get your head around multi-threaded Domino applications (That's the icing after you read the Thinking in Java) and use my sample class to schedule tasks
    14. Learn the modern Java API for Domino with auto-recycle and proper collections
    15. Tame Domino Designer
    16. Simplify your bug hunting in Domino Designer and install the free FindBugs for Domino Designer from OpenNTF
  • Classes & Certification
    There are ready classes you can attend. Or reach out to people mentioned here to get your custom workshop.
    • TLCC
      • ND85XPGS - Developing XPages using Domino Designer 8.5
      • ND85XPG2 - XPages Development 2 for Notes and Domino 8.5
      • ND85XJSC - JavaScript for XPages Development (8.5)
      • XP85MOBL - Mobile XPages Development for Domino 8.5
      Also check out their package deals and other R85 courses
    • IBM
      offers 14 classes that are designed not only to learn XPages, but prepare you for for the exams IBM Certified Application Developer - Lotus Notes and Domino 8.5, IBM Certified Advanced Application Developer - Lotus Notes and Domino 8.5 and LOT-922: Developing IBM Lotus Domino 8.5.2 Applications: Advanced XPage Design (there are more)
      • D8L51 - Fundamentals of IBM Lotus Domino 8.5.1 Application Development
      • D8L53 - Developing IBM Lotus Domino 8.5.2 Applications: Intermediate XPage Design
      • D8L54 - Developing IBM Lotus Domino 8.5.2 Applications: Advanced XPage Design
      • D8L55 - Introduction to IBM Lotus Domino 8.5 XPages
      • D8L56 - Modernizing IBM Lotus Domino 8.5.2 Applications
      • D8P51 - Fundamentals of IBM Lotus Domino 8.5.1 Application Development (SPVC)
      • D8P53 - Developing IBM Lotus Domino 8.5.2 Applications: Intermediate XPage Design (SPVC)
      • D8P54 - Developing IBM Lotus Domino 8.5.2 Applications: Advanced XPage Design (SPVC)
      • D8P55 - Introduction to IBM Lotus Domino 8.5 Xpages (SPVC)
      • D8P56 - Modernizing IBM Lotus Domino 8.5.2 Applications (SPVC)
      • D8S44 - Developing XPages using Domino Designer 8.5
      • D8S61 - XPage Development 2 for Notes and Domino 8.5
      • D8S60 - XPages for Notes and Domino 8.5 Package
      • D8S46 - XPages and JavaScript for Domino 8.5 Package
    • edcom
      If you like your instructors rather speaking German and Bavarian, attend a session in Munich or Cologne in Germany
      • ED8590: Einführung in die Entwicklung mit XPages unter Domino 8.5.x
      • ED8591: Entwicklung mit XPages unter Domino 8.5.x für Fortgeschrittene
      • IBMD8L53D: Developing IBM Lotus Domino 8.5.2 Applications: Intermediate XPage Design
      While you are on it, check their whole course list, lots to learn there
  • Community
    No man is an island and there are communities out there to help. This is what you should watch and participate in
    1. Make sure you have signed up for a DeveloperWorks accounts, so you can update the Domino WIKI, participate in discussions and communicate with IBMers using Sametime
    2. Register on BleedYellow. It gives you access to Blogs, Communities and Sametime
    3. Listen to the Consultant in a pocket webcasts
    4. Become part of OpenNTF, if it is only for being able to rate and feedback on the content.
      Update: There are amazing contributions on OpenNTF you should check out (besides the ones already mentioned above): Don't forget to also checkout all the great custom controls and ready to use apps.
    5. Ask your XPages question on Stackoverflow, there are more than thousand answers to be found already!
This page will get updates over time
Update: Updated on Aug 28 2013 based on feedback so far

Posted by on 06 January 2012 | Comments (c) | categories: XPages


  1. posted by Niklas Heidloff on Friday 06 January 2012 AD:
    Great summary.
  2. posted by Michael Gollmick on Friday 06 January 2012 AD:
    Invaluable! Thank you! Emoticon biggrin.gif
  3. posted by Darren Duke on Friday 06 January 2012 AD:
    And Notes in 9. Don't forget Notes in 9! From David Leedy....

    { Link }
  4. posted by Steve Mason on Friday 06 January 2012 AD:
    Are all of Declan's exercise links dead? None of them seem to work for me (404 error)...
  5. posted by Ulrich Krause on Friday 06 January 2012 AD:
    unfortunately the links on Declans page are not working.

    This is caused by an error that I reported to IBM around ILUG 2010. An extra font tag is added to the link. This happens, when you cops links from one RT item to another. I was also bitten by this ... But IBM could not reproduce ( even the error occurs in the Domino Wiki )

  6. posted by Howard Greenberg on Friday 06 January 2012 AD:
    TLCC also has a mobile XPages course:
    { Link }

    And, TLCC has a JavaScript for XPages Developers course too:
    { Link }

    And our XPages courses are not just for getting started. We cover very advanced techniques like working with web services, Dojo, etc. in our XPages Development 2 course.

    Thanks for putting together the list,

  7. posted by Martin Perrie on Saturday 07 January 2012 AD:
    The links to Declan's exercises can be accessed from the monthly archive on his site. Use this link for the first lot of exercises :-

    { Link }
  8. posted by Howard Greenberg on Friday 20 January 2012 AD:
    Stephen, great presentation on JS at LS12!

    For the resources on this page, can you add TLCC to the core XPages? We also have advanced XPages courses. And, we have a great JavaScript for XPages Development course too.

    Finally, we have a new Mobile XPages course too.

    Our courses are available from tlcc.com and for US folks, IBM.COM.


  9. posted by Cameron Gregor on Tuesday 08 May 2012 AD:
    Great reference thanks for sharing.

    The link to Bob's book on Domino with Java is broken. It has got a double quote at the end of the URL.

  10. posted by Joachim Boive on Thursday 07 March 2013 AD:
    Great stuff!

    But I would remove any reference to W3Schools.

    { Link }

    W3S is not a website I would like to promote.

  11. posted by swapnil raja on Friday 23 August 2013 AD:
    The are of writing articles and to collection data, which is means precious value for internet user is not a easy task. This seems that you have done a hard work and dedication to collect these data. Thanks a lot for sharing this.
  12. posted by Abderrahmen Ben Mariem on Thursday 14 July 2016 AD:
    thank you for the great resources.