Domino Upgrade

VersionSupport end
Upgrade to 9.x now!
(see the full Lotus lifcyle) To make your upgrade a success use the Upgrade Cheat Sheet.
Contemplating to replace Notes? You have to read this! (also available on Slideshare)


Other languages on request.


Useful Tools

Get Firefox
Use OpenDNS
The support for Windows XP has come to an end . Time to consider an alternative to move on.

About Me

I am the "IBM Collaboration & Productivity Advisor" for IBM Asia Pacific. I'm based in Singapore.
Reach out to me via:
Follow notessensei on Twitter
Amazon Store
Amazon Kindle
NotesSensei's Spreadshirt shop

« eLearning in the enterprise vs. eLearning in education | Main| Application Configuration / Parameters in XPages »

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


Gravatar Image1 - @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.

Gravatar Image2 - 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...

Gravatar Image3 - 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)?

Gravatar Image4 - Thanks for the list! Did not know about OSGI alliance... Something else for me to learn!!! Emoticon

Gravatar Image5 - 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.

Gravatar Image6 - 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!

Gravatar Image7 - 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.

Gravatar Image8 - 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.

Gravatar Image9 - @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 stw

Gravatar Image10 - why should I learn Java for xpages development?


This site is in no way affiliated, endorsed, sanctioned, supported, nor enlightened by Lotus Software nor IBM Corporation. I may be an employee, but the opinions, theories, facts, etc. presented here are my own and are in now way given in any official capacity. In short, these are my words and this is my site, not IBM's - and don't even begin to think otherwise. (Disclaimer shamelessly plugged from Rocky Oliver)
© 2003 - 2015 Stephan H. Wissel - some rights reserved as listed here: Creative Commons License
Unless otherwise labeled by its originating author, the content found on this site is made available under the terms of an Attribution/NonCommercial/ShareAlike Creative Commons License, with the exception that no rights are granted -- since they are not mine to grant -- in any logo, graphic design, trademarks or trade names of any type. Code samples and code downloads on this site are, unless otherwise labeled, made available under an Apache 2.0 license. Other license models are available on written request and written confirmation.