XPages - the "other" skills
HTML
- The original HTML specification. To be used with caution: it is your language dictionary. Use it for lookup, not to learn. It is also useful to combat sleep disorder (you fall asleep if you read more than 10 pages in one go)
- Introduction into HTML by w3schools. Step by step tutorial, also available in HTML5
- The O'Reily book: Head First HTML with CSS & XHTML
(Covers CSS too). Head first books a really fun to read
- The famous HTML5 presentation (Don't try with IE
) - Design Patterns for Web Interfaces including the book
HTTP
- The original specification (Strong sedative)
- Definition on WikiPedia. Interesting here are the methods and the status codes (we like 200 best)
- For special needs you might look at the HTTP extensions (defining new methods) known as webDAV and CalDAV
CSS
- The official specification is here
- WikiPedia has a good summary
- Stunning beautiful CSS can be found at CSS Zen garden
- Unsurprisingly w3schools has a good tutorial
- Good articles around web development can be found on A list apart
- The IBM OneUI specification
- Listamatic for all things you can do with lists and css
- Matthew James Taylor's Horizontal centered Menus (Check out his other stuff too!)
- Head first contributes Head First Web Design
JavaScript, Ajax, JSON and Dojo
- You start with some Code Magnets
and read Head First JavaScript
followed by Head Rush Ajax
and Head First Ajax
- w3Schools has JavaScript, the HTML DOM and Ajax
- Wikipedia give a good Ajax overview including to the article by Jesse James Garrett of Adaptive Path who coined the term Ajax
- JavaScript actually is ECMA-262 script
- The official Dojo documentation or the much more souped up version
- Learning Dojo is easy taking advantage of Dojo Campus and all the samples online
- Once you get serious with JavaScript you need JSON. Is is easier than it sounds and really powerful
- O'Reilly has definite guides for JavaScript
and Dojo
- You start with some Code Magnets
XML
(when you replace the structure of XML tags with 10, 20, 30 XML looks suspiciously like a COBOL DATA DIVISION).- Fight insomnia with the official documentation
- Complete the w3schools tutorials on XML, XMLDOM, Schema, XSLT, XPath and XSL-FO
- Wrap your head around WSDL, SOAP and RDF
- My only
SUNOracle contribution: use SAX to write large XML
Java
- Head first to the rescue: Head First Java, 2nd Edition
and Head First Servlets and JSP
- Complete the tutorial on IBM DeveloperWorks (including part 2)
- You want to use the learning IDE BlueJ to experiment with Java. It allows you interactively create and inspect objects and call methods.
- Since Domino Designer is now build on the Eclipse IDE, a tutorial about Eclipse will deepen you understanding
- A place where I found a lot of help is the JavaRanch
- Head first to the rescue: Head First Java, 2nd Edition
JSF
- The part you really want to understand is the Expression Language (EL) as defined in JSR 245 (note: not all of JSR 245 ins implemented in XPages)
- Coreservlets has a JSF tutorial where you can download the EL section as PDF.
- There is documentation in the JSP specification
- Read about Core JavaServer Faces
. This is advanced stuff you only need for really deep understanding (the rest of us read the findings on The XPages Blog)
OSGi
You would need that understanding only if you plan to use the XPages extension API- Where it all began: The OSGi alliance
- OSGi on Wikipedia
- Start your Domino Designer with the parameters:
-RPARAMS -consoleand read the DeveloperWorks article
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






Comments
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.
Posted by Stephan H. Wissel At 18:14:36 On 09/04/2010 | - Website - |
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...
Posted by Jesper Kiaer At 20:52:44 On 08/31/2010 | - Website - |
Posted by ChrisC At 23:22:16 On 08/31/2010 | - Website - |
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.
Posted by joel david At 01:29:58 On 09/05/2010 | - Website - |
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!
Posted by joel david At 09:51:00 On 09/04/2010 | - Website - |
Posted by John Turnbow At 23:00:24 On 08/31/2010 | - Website - |
Also for your other readers I would like to thoroughly endorse the Head First book series and the w3Schools website you've just mentioned.
Posted by Ellery McKenzie At 08:01:59 On 09/01/2010 | - Website - |
And if someone is cured from Cainotopia, he will behave like us, too.
Posted by axel At 22:07:38 On 08/31/2010 | - Website - |
Posted by joel david At 12:10:59 On 09/03/2010 | - Website - |
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?
Posted by Stephan H. Wissel At 17:13:22 On 09/03/2010 | - Website - |