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.
Update: Updated on Aug 28 2013 based on feedback so far
- New to Notes and Domino?
The new platform features and integrated document data store, the mother of all NoSQL databases. Follow the introduction articles over here to get a feel for the possibilities - Fundamentals
This is stuff any developer needs to know, regardless of what platform you came from or you are going to.- An excellent refresher for computer science is Stanford Engineerin Everywhere course CS106A - Programming Methodology (you will love Carol and finally pledge to do proper decomposition). Check out the other courses too. They are all free
- Read Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)) (a bit hard to digest at times) and Clean Code: A Handbook of Agile Software Craftsmanship
- Prepare your day with a laugh at Geek and Poke
- Your development machine needs to meet the hardware specifications. As a rule of thumb: double the recommended IBM specs and you will be fine. For local preview your port 80 needs to be free and unblocked. Skype and Anti-Virus like to use and/or block it. Also paranoid AV settings will slow you to a crawl
- Getting started
- In shameless self-promotion: Do the 27 exercises that Tim Clark and I wrote. The needed resourced are on the page for download. But promise not to use that layout for your applications
- Head over to Declan's and do his 53 exercises. Pay special attention to the OneUI stuff
- Continue to XPages.TV. There you watch more than 30 tutorials on XPages topics of various degrees
- Consider to subscribe to Matt White's excellent service XPages 101. 68 lessons and access to a top expert behind IdeaJam is worth your money
- Check out the TLCC offerings. There's a free starter class
- Learn tips and tricks on NotesIn9 and check out The XPages Cheatsheet app
- Version Control
Software development without version control is like driving a car without headlight and breaks: all fun and games until someone gets hurt.- Make yourself familiar with the official WIKI pages explaining the topic
- Endulge in the most comprehensive Source Control in Domino documentation courtesy of Sean Cull
- Watch Per's introdction into XPages and GIT
- Get yourself the modified eGit plug-in and/or opt for a full client
- Branching should become your middle name. Read a success story and plan your strategy
- Core XPages
Now that you know the basics, you can move from learning about to learning with. This is where you switch from tutorial to examples and articles.- Stop 1 is the Notes Domino Application Development Wiki, which IBM's official XPages documentation
- On XPages.info you will find tons of examples, ready applications and the famous Extension library. Take a close look at the contributed free custom controls. (Re)use them, don't reinvent wheels!
- A treasure trove of information is the XPages Wiki (you can log in there and contribute)
- Find reusable code snippets (and contribute back) in the XSnippets container of OpenNTF
- Read a book: Mastering XPages: A Step-by-Step Guide to XPages Application Development and the XSP Language
- Once you go deeper - read this: XPages Extension Library: A Step-by-Step Guide to the Next Generation of XPages Components
- And keep this one handy: XPages Portable Command Guide: A Compact Resource to XPages Application Development and the XSP Language.
- Make sure to check the XPages Video overview on OpenNTF. You will find more than a hundred of them!
- 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:- There are many videos provided by OpenNTF, including the XPages master classes, 3 hourse well invested. Check them out on OpenNTF's YouTube channel
- Install the XSP Debug Toolbar and get on top of your development. A video introduces its capabilities
- make yourself familiar with partial execution, a powerful feature well hidden
- Learn how to create your own custom controls in Java. This is the first step to your own control library
- Meet the hot design on the block: Bootstrap for XPages
- We love our grids, this > 25 part series teaches everything you didn't know you should know and can do with Dojo grid and XPages
- 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!- I found Eloquent JavaScript an invaluable resource to understand JavaScript
- Equally valuable is the JavaScript Garden
- Ensure quality of your code with JSHint
- Nice online reference on web development at websitesetup.org
- Learn Dojo (it is easier than you think)
- w3schools JS introduction is easy to follow
- 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)
- Get the Dojo extension for Firebug and read its documentation. It will make your life easier
- 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- Your visual framework might be the IBM OneUI. Make yourself familiar
- The second visual framework (even more popular in the wild) is Twitter Bootstrap, there is XPages support for it
- 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)
- Learn HTML at w3 schools (comes in HTML5 flavour too)
- Use the HTMLHelp online reference
- 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- Learn about the mobile controls in the Extension library
- Familiarize yourself with Apache Cordova (the artist formerly known as PhoneGap/Callback). XPages uses that "under the hood"
- 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
- Add the Teamstudio Mobile Controls to your toolbox. Get the sources from git. The controls are great when you planning stressfree offline capabilities
- 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- Read a book: Head First Java, 2nd Edition. It is funny like the whole series and gives you a head start.
- 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
- Listen to and watch Paul's Intro into Java for Domino Developers
- Listen to and watch Tim's Climbing the bean stalk. It shows nicely how to transit from typical LotusScript functions into object oriented Java
- Download and install BlueJ. It allows you to interactively work with Java objects. A killer when exploring new objects
- Look at the source of the Extension library
- When you are ready to dive deeper: read Thinking in Java
- Java has to be effective, so read Effective Java (2nd Edition) by Joshua Bloch
- Check out the XSP Starter Kit
- Familiarize your self with OSGi Tasklets (a.k.a DOTS)
- Learn how to setup Eclipse to Debug XPages Java code
- Find Java tutorials at How to Program with Java
- 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
- Learn the modern Java API for Domino with auto-recycle and proper collections
- Tame Domino Designer
- 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
- 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
- TLCC
- Community
No man is an island and there are communities out there to help. This is what you should watch and participate in- 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
- Register on BleedYellow. It gives you access to Blogs, Communities and Sametime
- Listen to the Consultant in a pocket webcasts
- 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):- Qian Liang's Workflow for XPages
- Toby Samples' LDAP data source
- Your's truly's webDAV for Domino
- and **DRUMROLL**: OpenNTF's Java API for Domino driven by a team around Tim Tripcony, Nathan Freeman, Jesse Gallagher, Paul Withers, Declan Lynch, Rene Winklemeyer - just to name the key players
- Ask your XPages question on Stackoverflow, there are more than thousand answers to be found already!
Update: Updated on Aug 28 2013 based on feedback so far
Posted by Stephan H Wissel on 06 January 2012 | Comments (c) | categories: XPages