A couple of days ago, Johan asked how it was possible to write almost 700 pages on the Ribbon... I figured that this was probably as good an opportunity to tell what is in the book (RibbonX - Customizing the Office 2007 Ribbon) in my own words, as well as what we were trying to accomplish with it.Â Due to the fact that we weren't really allowed to talk about it as we wrote, I didn't really get to blog much about my experiences.Â So here goes...
First off, there is an index and a table of contents that add to the bulk a bit.Â I'm going to blame that for a bit of the inflation.Â 😉
The book naturally starts off with an intro chapter that discusses what is needed to customize your UI in Office 2007, compared to the way we did it in previous versions.Â It's sure not as easy as importing J-Walks' table driven menu code and filling out a short survey any more!Â
From there we got right to the content: A full chapter just on XML, how to read it, and how to build it.Â Next we described the different methods for attaching a simple CustomUI to your project using both the unzipping/zipping method, (for Excel and Word files,) as well as the CustomUI editor.Â We also discussed XML Notepad as well, as it is another tool that can be used to the developer's advantage.Â Both these tools require the installation of the .NET 2.0 Framework on Windows XP, so that needed to be covered as well.
Once through the XML basics, we had to give the user the basics of VBA as well, since it's fundamental if you want to get more than just moving Microsoft's commands around.Â So really, there was quite a lot before we even got into working with the Ribbon.
The meat of the book is broken down to cover all of the individual Ribbon elements, from the button to comboBox to dynamicMenu, and also has a dedicated chapter on using different attributes to format controls.Â Every element is provided with complete (and legible) tables that detail what attributes it has, their default values (if any), acceptable parameters and callback signatures.Â In many cases, images are even provided to demonstrate exactly how certain attributes display on screen.
It was really important to me that each chapter be something that you could refer back to when writing your code.Â I wanted every user to be able to get the answer to this kind of scenario... "Why doesn't my dropDown work?Â Oh!Â It doesn't support the attribute that I put in!"
What really added to the page count, though, was that we chose to demonstrate by example as well.Â There are full examples, rife with XML and VBA, of using each element.Â In 90% of the cases, we included an example in each of Excel, Word & Access.Â We walk the reader through the creation of the file, as well as hooking up the pieces of code to make things work.Â We really made an attempt to teach the "how", rather than just give a "this is the theory, now good luck".Â I can't even begin to count the hours that I spent coming up with examples, building them, testing them, and documenting them.Â There were a lot that ended up on the cutting room floor, too, some of which ended up as "CAUTION" notes in the book.
After discussing all the basic controls, we felt that it would be really useful to give some examples of using attributes to provide help to your users.Â User interface design and efficiency is a bit of a passion of mine, and after all, this entire book is about creating a good UI.Â We felt that drawing the readers attention to some tricks to make life easier for the end user would be pages well written.
And then it was time to move into more advanced VBA, the Office menu, QAT and contextual tabs as well.Â These chapters are packed with stuff that developers will find useful, my favourite of which is probably Robert's Table Driven QAT customization.
I'll say that the hardest chapter to write of the entire book was Chapter 16, which was on deployment, but I'm really happy with the outcome.Â Being an Excel geek, the Excel part was simple, and I really enjoyed it.Â Tony Jollans helped me a bit with the Word side of things, and the material there is much better for his doing so.Â Both of the above cover using regular files, templates and add-ins/global templates.Â In addition, we discuss sharing tabs across different files using the idQ attribute here, and have some pretty cool examples in Excel and Word of doing so.
There's much more in the deployment chapter as well, including a full subsection on deploying Access databases, written by Oliver Stohr.Â While deployment of a full Access file to a user with a full Access install is a breeze, Oli covers how to do it using runtimes, locking down the UI where you don't want owners of the full version to tinker with your product, and much more.Â He did some great work there to be sure.
The final chapter is on Security, and details how to set up the Trust Center for both you and your users.Â It ends with a discussion of digital certificates, walking the user through creating and installing certificates created with SELFCERT.EXE.
And finally, the appendices included table after table of tags, from the names of tabs, groups and commands in each application, to imageMso and keytip information.Â Our RibbonX naming conventions are also provided there, as well as an Appendix that details RibbonX resources on the web for anything we may not have covered.Â Wiley is also hosting all of our example files on their site for download as well.Â All of the examples we create will be there, as well as some additional files.
As you can see, we tried to make this book as full and complete as we possibly could.Â I'll be honest in saying that I never thought we'd come close to this many pages at the outset, but once we started, the page count just seemed to keep mounting.Â I'm fairly proud of the end result, and can honestly say that I was referring back to my own material constantly when trying to customize things at work.Â My only regret about this book is that we couldn't have a CD included with the PDF version of the entire thing.Â J-Walk has that for some of his, and its simply an awesome bonus.Â I understand the concern, though, as it could be easily passed around, but for those legitimate buyers the ability to just put the PDF on your laptop, rather than carry the book around... it's a nice bonus.Â Maybe next time.Â
I guess to summarize it all, there are a few factors that contribute to almost 700 pages... the fact that there are so many prerequisites to customization now, the HUGE amount of examples, and the large amount of reference tables and images that you'll find between the covers.Â Overall, I really hope that people find this book a valuable resource for RibbonX customization.
Okay... enough about the book.Â It's time to get back to other things.Â 😉