Your Development & Design Resource
XPages Extension Library from IBM Press
06/04/2012 by Chris Toohey
(This was the first time I've used the Vendor - Commercial disclaimer on one of my posts... Not too sure if it's a perfectly accurate description tho, so mind the intro to the review/giveaway.)
I was one of the technical editors for the latest XPages development book from IBM Press: XPages Extension Library: A Step-by-Step Guide to the Next Generation of XPages Components... so I might be a little biased. As such, I'm not going to "review" this book, as much as I'm going to discuss it -- using my typical review format -- and let you make your own decision. For what it's worth (spoiler alert!), I'd absolutely recommend this book. It's an invaluable resource for any developer using the IBM XPages development platform as of 8.5.3 Update Pack 1, or even previous versions with the OpenNTF.org Extension Library installed. I was paid to act as one of the technical editors on the book, and the majority of the feedback I provided to the authors resulted in updates to the book. Things like "great, but an example of this showing this would really help" or "this example is kinda out of context without the rest of the XPages XML markup showing exactly how they can do it".
I guess what I'm trying to say is that I looked at this book not as someone who has been developing in XPages prior to it's 2008 in-product release, I read the book as someone new to the Extension Library and somewhat familiar with XPages... and someone that would actually have to use these Controls to duplicate functionality for their Lotus Notes Client applications while extending (or in some cases, evolving) those applications to meet their user expectations of what enterprise-level web applications can do.
Hopefully that gives you an idea, at least, into my role in this book. Not all of my suggestions were taken -- as I'm certain not all of my suggestions were good -- but both the authors and the technical editors (of which I was one) did their best to create a product that not only showcased the capabilities of the technology, but also gave you something that you could actually use in your day-to-day application development efforts.
Again, spoiler alert, I think they succeeded. Again, I might be biased. But then I don't think you really care if I am biased, as long as I keep to the previous format... which I think gives you enough insight into the book to know whether it's something you'll want in your own arsenal.
... and with no further ado:
Chapter 1: The Next Generation of XPages Controls
After a detailed overview of the history and "how we got to the now" recap, this chapter explains why the XPages Extension Library is so important to the evolution of Lotus Notes and Domino applications. The chapter sets the stage for what's to come in the rest of the book, as well as the IBM and ICS community message: XPages (and due to it's importance the Extension Library) is the future, and now is the time to ramp up your skills.
Chapter 2: Installation and Deployment of the XPages Extension Library
This chapter delivers on what's promised in the title: installation (and uninstallation), and deployment of the Extension Library (which I'll refer to from now on as "ExtLib to save my fingers a few keys...).
The most important part of this chapter is the "Deployment" of the ExtLib, which this chapter covers with an in depth review of creating and maintaining using an Eclipse Update Site NotesDatabase.
Chapter 3: TeamRoom Template Tour
If you're the type of person who -- like me -- needs to see something at-work before I can actually understand it, then this chapter was written for you. Chapter 3 shows you the TeamRoom template, which is not only a fully-functional and feature-rich XPages application itself, but also showcases the ExtLib with Controls that either duplicate or outright replace functionality you have in your traditional Lotus Notes Domino applications.
Short but to the point, this chapter delivers, and it'll have you wanting to put all of the cool things covered here in your applications...
Luckily, that's all covered in the following chapters.
Chapter 4: Forms, Dynamic Content, and More!
The ExtLib is all about speed and bringing Rapid Application Development back to the IBM Lotus Notes Domino Developer while also allowing them to build the feature-rich, enterprise-grade applications that both the business and the user base demands. This chapter not only embraces that philosophy, it kicks-off showing you exactly how to do it.
Chapter 5: Dojo Made Easy
Chapter 6: Pop-Ups: Toolips, Dialogs, and Pickers
Speaking of interactive client HTML Elements, this chapter is all about using ExtLib controls to interact with the user.
This chapter also discusses one of my favorite controls, the ExtLib
xe:toolTipDialog... which I think will be overlooked by most developers.
Chapter 7: Views
Despite what may come across as a lackluster title, this chapter covers "Views" of NotesData, JSON, and more and their UI display using various ExtLib controls.
Far beyond the core
xp:viewPanel, this chapter covers things like using an
xe:restService or an
xe:viewJsonService to populate an
xe:listView controls. Really advanced-level stuff, yet still designed to support the RAD philosophy.
Chapter 8: Outlines and Navigation
Having all of that data on-screen means nothing if you can get around it, and this chapter delivers the how to on navigation using the ExtLib controls.
Building applications targeted to a web browser client is a funny thing. You can either go more "web" than "application", where most of your applications will look like a website that has some bolt-on web forms and data grids. Or you can go more "application" than "web", where it looks like you re-created Lotus Notes in Google Chrome.
While I think the middle-ground for these two extremes is OneUIv2.1, this chapter covers -- amongst other things -- the
Once you start using this control, and more importantly create you own custom layout controls for your XPages-based applications, you can really start duplicating the feel of a Lotus Notes Client application while having the ability to evolve it to fit the Web Browser client.
This chapter delivers on other fronts as well, but the coverage on the xe:djBorderContainer is worth the price of admission alone.
... mind you, also covered in this chapter is everything you need to know about the ITreeNodes in XPages. Without getting too far into it, think of it this way: this chapter covers all things layout, menus, and structure in the world of IBM XPages via the ExtLib.
Chapter 9: The Application's Layout
xe:applicationLayout Control is both so important for anyone interested in quickly and easily develop OneUIv.2.x-styled applications and so damned customizable, it really needed it's own chapter.
'nuff said, really. If you're using the
xe:applicationLayout Control, this chapter will be invaluable.
Chapter 10: XPages Goes Mobile
Another one of those "worth the price of the book alone" chapters -- which this book is filled with -- the mobilization of applications is critical to enabling your users while ensuring that your platform (and your skillsets) evolve with the demands of the enterprise.
It's a big chapter covering a big topic, and something that you'll be referring to again and again regardless of how many XPage applications you've written.
Chapter 11: REST Services
Tim Tripcony and I initially started our now-defuct podcast because we wanted to document creating RESTful Web Services for Domino. The ideas we tossed around at the time centered around using servlets as HTTP Request Consumers to handle GET, POST, PUT, and DELETE Method requests against NotesData.
This chapter covers the now out-of-the-box REST Services capabilities of XPages, and makes our hands-bound-by-platform-limitations attempts seem small and uncoordinated.
Now, and as this chapter illustrates, within a few mouse-clicks you can create a simple REST Service control
xe:restService that handles everything.
We had fun recording those episodes though, and I learned how to use Audacity... so it's not a complete loss.
Chapter 12: XPages Gets Relational
This chapter, while amazingly detailing exactly what you'll need to do to support RDBMS in XPages via IBM's DB2 JDBC Driver... I think it'll be overlooked by the majority of XPages application developers. It's a shame, too, as this chapter shows you step-by-step on how you can integrate a lot of your non-Lotus in-house technology investments with XPages.
The sections on SQL queries alone should spark ideas on integration.
Chapter 13: Get Social
This chapter is a must-have for any developer interested in using OAuth-authenticated web services in their XPages application. The demo application for this chapter is a simple yet super-slick Dropbox/LotusLive/IBM Lotus Connections mashup, but you could easily substitute those for any other OAuth-friendly web services.
Combine this chapter with Chapter 7, and you can now surface and interact with pretty much anything that has an HTTP-accessible API.
The chapter continues (!!) and jumps into more "social" controls, such as Connections Profile Controls and Sametime Chat controls.
Chapter 14: Java Development in XPages
... still there? I ask, because most Lotus developers run when they hear/see/read Java.
This chapter, like several other chapters, really could have been their own book. I wanted to read more, and the chapter author acknowledges that they've only "scratched the surface" of Java development in XPages.
Managed Beans are featured, and once mastered may change the way you write your XPages applications. The XPages Extensibility API all but removes the option to complain about something in XPages not working exactly how you want it to work.Conclusion
My Google-fu failed me. I can't believe there's not one '"No Admins Allowed" sign written like boys trying to keep girls out of their clubhouse'-image readily available...
Who this book is for:
- You. If you're reading this site, this book is for you.
- IBM Lotus Notes Domino Application Developers that are at least familiar with XPages.
Who this book is not for:
- Admins - the ExtLib deployment stuff is great, but you guys can borrow it from your friendly neighborhood developer when setting that up.
- IBM Lotus Notes Domino Application Developers that are not familiar with XPages.
IBM Press has a winner on their hands here... but a developer that is new to XPages should consider purchasing Master XPages first.
If you read this site, have written a few XPages applications, and are looking to either dive into the ExtLib or make sure you're getting the most out of it, then I can't recommend the XPages Extension Library: A Step-by-Step Guide to the Next Generation of XPages Components enough!
... but again, I'm a little biased.
Win a free copy courtesy of IBM Press!
But why buy it (from my strategically placed Amazon store/affiliate links) when you can win it? Simply comment on this post to enter, and I'll draw one winner at random by Friday, June 8, 2012 at Noon Eastern. Pretty simple.
Of course, if you want to Like or +1 this post and help spread the word (as well as keep giveaways like this going), it all helps the cause.
So comment below (unique-author entries will be entered into the contest, in the case of multiple comments from the same author) to enter, and check back here on Friday for the announcement. And if you already own a copy of the book (as its been out for some time now -- damned schedule!) and want to weigh in on the review, please feel free to add your thoughts via comment below.