dominoGuru.com
Your Development & Design Resource
XPages Portable Command Guide from IBM Press
03/26/2012 by Chris Toohey
IBM Press is filling a much-needed gap that has been voiced by many Administrators and Developers working with IBM Collaborative Solutions (IBM Lotus Notes Domino) by publishing multiple books on XPages application development, deployment, and administration. The latest of these publications, XPages Portable Command Guide: A Compact Resource to XPages Application Development and the XSP Language, is designed to cover more of "the things you need to know when running XPage-based applications in production" vs. "here's how to develop an application with XPages".
IBM Press also hit various new media outlets to get the word out about this book, including podcasts, a Meet the Authors YouTube Video, and (of course) blogs.
Was all of this hard work to expose the latest IBM Press XPages imprint worth it? Let's find out!
From the Cover
The byline reads "A Compact Resource to XPages Application Development and the XSP Language"
. And while that fits, I think another highlighted entry from the back of the book better sums up what prospective readers can expect from this addition to the IBM Press XPages coverage:
A Practical Primer for XPages Application Development, Debugging, and Performance
The back cover also gives us an idea of the target audience for this book:
Designed for all lotus and Domino developers with at least some XPages experience, XPages Portable Command Guide is the idea companion and follow-up to Mastering XPages from IBM Press, the worlds #1 book on XPages technology.
... and while we're talking about the cover, the inside panels of the cover contain a pseudo-index that I think is absolutely genius:
XPages Portable Command Guide - Inside Cover Index (Click to zoom)
Chapter 1: Working with XSP Properties
The xsp.properties
resource bundle is one of those extremely important facets of XPages application development that is often overlooked by the typical Lotus Notes Domino application developer. Simply put, most people don't know how to even get to it, let alone what to do with it once they do. In a very smart move, the authors decided to start off the book with an xsp.properties
deep dive!
This chapter explores all 47 of these parameters in detail, along with some practical examples of how and why they can be applied to solve common problems.
47!, and Table 1.1 - a 5-page table giving details and said practical examples gives you an overview of each parameter. Great stuff here.
One thing that I really liked about this chapter is that not only are you directed to the location of the xsp.properties
resource bundle, but you are given screencaps of the Eclipse-based Domino Designer client viewing the bundle from the Package Explorer, viewing the bundle Properties, and various XPage Properties and their correlating settings in the xsp.properties
.
What I mean by that, and what the authors explain much better than I just did, is that there are various UI switches and settings that really do nothing more than change values in the xsp.properties
. For example, if you the Application Theme in the XPage Properties, all you're really doing is updating the xsp.properties
' own xsp.theme
property.
... so think of the xsp.properties
bundle as the Source pane to the (let's face it) sometimes glitchy Design pane that is Domino Designer in Eclipse Properties panes.
The best part of this chapter is the explanation behind why you're setting these various properties. If you've ever read the documentation, you'll know the one-liner that you get for why you should (or should not) enable a given property really doesn't tell you anything. This chapter answers why you would want to enable (or disable) a given property, and each property is given a real world scenario take.
If the core documentation was this good, I'd venture to say that we'd actually read it...
Chapter 2: Working with Notes/Domino Configuration Files
Now, most of you won't be able to do anything with the contents of this chapter except argue with your Administrator on why you need the Domino server notes.ini changed... but the benefit of this chapter is that you won't need to start your request with "I read on this blog that..." while the Admin's eyes glaze over.
This chapter will give Developers the Admin-friendly buzzwords and lingo like stability, scalability, memory management, JVM security, and performance.
All jest aside, this chapter explains in detail (without boring you) how to best configure your Notes/Domino environment to get the most out of your environment.
Chapter 3: Working with the Console
The XSP Command Manager, for those of you not familiar (and if you're not, you should really read this chapter), is basically a subset of the Domino HTTP task that handles All Things XPages.
This chapter also covers the OSGi Console... which anyone familiar with the OpenNTF.org Extension Library should be at least somewhat familiar with (you've all run that console command to verify successful installation of the latest/greatest version of ExtLib, right?!).
In this chapter, you'll learn how to use both the XSP Command Manager and the OSGi Console to manage, troubleshoot, and ultimately improve the stability and performance of your XPages applications in your IBM Lotus Domino environment.
Chapter 4: Working with the XSP Client Side JavaScript Object
In this chapter, we learn about the differences between the Domino 8.5.3 release (hint: we're running 1.6.1 now, and there's a reason this chapter follows the OSGi one...), and offers a decent deep dive into the various Client Side functions available to XPages developers using the XSP libraries.
If nothing else, you should walk away from this chapter with ideas, and a true sense of the separation of Client Side User Interface and the Backend Server Side. The functions discussed in this chapter give you case by case scenarios of leveraging CSJS (Client Side JavaScript) to perfect not only the submitted content but also the overall user experience.
In other words, great chapter that acts as a quick reference for the various XSP functions that you'll need to master in order to make truly engaging and rich XPage applications.
Chapter 5: Server-Side Scripting
From scoped variables to managed beans, this chapter covers all things SSJS. And as you'll come to expect with this book, SSJS is covered with no-nonsense, real world scenarios.
Chapter 6: Server-Side Debugging Techniques
"The 'Poor Man's' Debugger" -- which kicks off this chapter -- is an excellent example of debugging SSJS... if you're a fan of the "GOT HERE!"-style of debugging print statements.
Luckily, this chapter dives into other tactics and methods for debugging and ultimately how to go about finding out just what went wrong when your XPages (or more accurately, your SSJS, Java, Managed Beans, et al) aren't doing what you think they should.
Beyond the built-in resources, this chapter also showcases the XPages Toolbox from OpenNTF.org, and ultimately speaks to the tactics for troubleshooting vs. just a "click here to troubleshoot", which is in my opinion much more valuable.
Appendix A: Definitive Resources
JSF, Java, HTML5, CSS, Dojo, and various XPages-specific resources are highlighted in this appendix. Great resources, and LND XPages professionals would do well to read as many of these sites and resources as possible.
Appendix B: Useful Online Resources
I'm again honored to be included as a "Useful Online Resource", (well, dominoGuru.com is mentioned, not me, but you get the idea...), and I'm in great company with blogs, podcasts, video blogs (vlogs), online training and other resources that should help when you hit that proverbial wall.
Appendix C: Make Your Own Journal
Nothing amazing here, but certainly could be useful: 4 lined pages where you can write your own companion notes to travel with your Portable Command Guide.
Conclusion
Mastering XPages: A Step-by-Step Guide to XPages Application Development and the XSP Language is mentioned by this book several times as the most authoritative resource for learning and... mastering XPages, and if you don't own that book I highly recommend purchasing it first.
The Portable Command Guide is an excellent companion to Mastering XPages, and the information in these pages are invaluable. It doesn't duplicate the information found in Mastering XPages (outside of reviewing some of the very basic fundamentals and possibly some of the most common features/functions).
To put it simply, the XPages Portable Command Guide is the book that you'll be more apt to pack into your laptop bag, where Mastering XPages will sit on your desk.
You should buy both, (and the upcoming XPages Extension Library: A Step-by-Step Guide to the Next Generation of XPages Components), if your primary job can be described via a combination of the words "Lotus" and "Developer". While this book is valuable to Administrators, I think that it's more of a Developers book that is peppered with Administration considerations and interests.
Ideally, a Developer should think like an Admin, so this works out quite well.
Administrators... you can skip this one, or make your developers buy it.
Win a copy of the XPages Portable Command Guide!
Courtesy of IBM Press, you can win a copy of the XPages Portable Command Guide... simply by leaving a comment below.
I will select one comment at random on Friday, March 30th, 2012 at Noon Eastern (-5GMT) (if you want to comment yet already own the book or otherwise opt out of the contest, please mention that in your comment) after @Unique
'ing the entries (read: only one entry per comment author). The winner will be notified by email (the only time I'll ever use the email address you leave with your comments), and once I've confirmed the winner I'll update this post with a winner.
Good luck!
Update
And the winner of their own copy of XPages Portable Command Guide (courtesy of IBM Press) is... Michael Gollmick!
Many thanks to those of you who participated, and check back again soon for more tips, tricks, reviews, and contests!