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

XPages - the "other" skills

In most of the XPages trainings I conducted in 2009 and 2010 there were participants with no prior exposure to Notes and Domino other than using it as a user. They all however had experience with web development. XPages' JavaScript, CSS and HTML was like their natural environment and they had no problem catching up with "the old Notes nuts". The later however, especially the "client only" developers struggled. They struggled not with DDE or XPages per se, but with the open standards it embraces. So it is back to school (unless you have a medical condition) for open standards. This is my cheat sheet for the different technologies: For all the books you actually might consider a Safari book subscription.
I know - it is a lot of stuff. On the upside: these are all mostly platform independent (OK, not the Java stuff, but that's at least vendor independent). And: you don't need to know all these to get started - it is rather the master's list.
As usual YMMV

Posted by on 31 August 2010 | Comments (a) | categories: XPages


  1. posted by Jesper Kiaer on Tuesday 31 August 2010 AD:
    Nice list! thank you.

    Funny you mention webdav, since IBM deliberately does not support this in Domino for documents, but only design elements.
    A fundamental strategical flaw, since this could have been THE killer feature...
    But IBM wanted Quickplace instead...
  2. posted by axel on Tuesday 31 August 2010 AD:
    Those Notes-Developers who do not suffer from Cainotopia desease are doing anything from Sun Solaris administration over ITIL or Sharepoint dev to EJB3 with JSF-Portlets as frontend and a tiny bit of Process Server (am talking about people I know). So xpages is one of many possible options.

    And if someone is cured from Cainotopia, he will behave like us, too.
  3. posted by John Turnbow on Tuesday 31 August 2010 AD:
    Thanks for the list! Did not know about OSGI alliance... Something else for me to learn!!! Emoticon shocked.gif
  4. posted by ChrisC on Tuesday 31 August 2010 AD:
    Stephan - thanks. This is an excellent list - just what we need. Just out of interest are you doing anything with eclipse / domino for clientside (plugins etc)?
  5. posted by Ellery McKenzie on Wednesday 01 September 2010 AD:
    Hi Stephan, your Java tips at the recent Wellington training were really good. I downloaded BlueJ the very next day.

    Also for your other readers I would like to thoroughly endorse the Head First book series and the w3Schools website you've just mentioned.
  6. posted by Stephan H. Wissel on Friday 03 September 2010 AD:
    @Joel: The answer to the question "should you" is: NO.
    But if you ask "Would I want to?" the answer is: If you want to take 100% advantage of the capabilities - YES.

    It is like cooking: You can perfectly survive by only using ready prepared ingredients (like buying seasoned steaks from the butcher) or you learn to master seasoning yourself up to the level of making your own mayonnaise (a skill few master).

    Same with XPages. What level to you want to cook at?

    Emoticon smile.gif stw
  7. posted by joel david on Friday 03 September 2010 AD:
    why should I learn Java for xpages development?
  8. posted by Stephan H. Wissel on Saturday 04 September 2010 AD:
    @Joel: the statement that VB.Net is a better language for web development is a far shot isn't it? Also your statement "Java is for Enterprise applications" doesn't match how Java is used (Yes Enterprise applications are written in Java, as they are in C# or Cobol --- that's not the point). So you might want to revisit your presumptions first.
    And again: You don't have to learn Java (You also don't have to learn how to create custom control libraries when you want to develop PHP or ASP pages, you just use them). There are perfectly complete web2.0 applications written in XPages without a single line of user contributed Java (user contributed: written by you. The XPages runtime is a Java application - which already disproves your claim about enterprise applications).

    The question stays: what level do you want to play at?

    a) Looking for RAD web application development: XPages is exactly that. No hassle with ODBC/JDBC, setting up a database server, sourcing for a directory, configuring a mail server if you want to send stuff, coding security (vs. declaring it). Another huge difference to other platforms: You have one primary language for your code: JavaScript. JavaScript for both the browser and the server. I haven't seen any server side logic on PHP or ASP.NET written in JavaScript. Also: you write an XPage once and it will run in the browser and the Notes client, so offline and sync is taken care of.

    b) Looking to extend the platform to do advanced things that don't come out of the box: Getting into Java makes a lot of sense - of course you can just download the ready baked components from OpenNTF or a commercial offering.

    Give you an example: your web application needs to generate a PDF file to be downloaded / eMailed or printed. How do you do that in PHP or VB? --> You use someone else's package which most likely is platform dependent (the VB.NET library won't run in Mono, so your stuck with windows servers, the PHP library might be there for Linux and Windows, but not the Mac or big iron). In XPages you use the platform independent Java libraries (e.g. iText or PDFBox). You can use them from JavaScript simply by assigning them to a variable:
    var x = new com.stuff.SomeClass();
    and write everything in JavaScript. But you also can wrap some of the stuff into a Java class where you can use threading and other advanced Java concepts -- if you want to. They syntax from Java to JavaScript is sufficiently similar.

    As I said earlier: You don't have to learn Java but for certain functions you might want to.
  9. posted by joel david on Saturday 04 September 2010 AD:
    I want to use xpages to do web applications that are complete. It should be powerful enough to get the kind of applications I have done with PHP, ASP. I don't expect it to match a Java development environment. Java is for enterprise applications, not really a good choice for web applications which should be RAD.

    If XPages - Java = PHP or ASP then that should be good, but if I have to learn Java, then I may look for something better -- ASP.NET using VB as the language!
  10. posted by joel david on Saturday 04 September 2010 AD:
    I meant to say VB.NET is easier for me than Java, as I find it hard to use Java for web development. I used the term "better" in that sense. I should have been more clear.

    Your example that Java was used for xpage runtime is different from business applications space. IBM is a product company and they use Java to write platform independent products. In the business applications space, Java is primarily used for enterprise development. Again, I should have been more clear.

    Running platform independent applications is nice to have, and often not an important decision in developing web applications we develop in ASP, PHP or domino. Mostly we use domino for department level applications, and for us platform independence is not a big plus. In enterprise level, if you use different databases in different platforms, communicate with legacy system etc, message oriented middleware etc Java has a main role. that's why any enterprise system looks for java...

    anyway, i get the idea.. i will see how useful it is for my scenario. one problem with domino is it is poor for reporting, join etc.. with xpages i hear they are easy, need to check.