It's no secret that I was the contributing technical editor (TE) for Professional DotNetNuke 5: Open Source Web Application Framework for ASP.NET, by Wrox. Being a TE has some great perks, not the least of which being one of the first people to see the content of an upcoming book. I had the responsibility of looking over the 4 module development chapters by Stan Schultes. So, I already knew that those chapters would be great!
Here is another disclaimer... I have the honor of knowing all of the authors personally. I regularly network with Brian Scarbeau, Darrell Hardy, Stan Schultes, and Ryan Morgan. In fact, Brian is the ODUG Founder, the user group of which I am currently President. I have had Darrell and Stan both give presentations to the ODUG, and speak along side them regularly at various code camps. Needless to say, I have some insider information about just how talented and knowledgeable they all are. I have met and hung out with Shaun Walker before, and we are "friends" in a couple of social networks, but we are otherwise acquaintances.
I am just about done reading this book from cover to cover. There aren't many technical books that I can do that with. Usually, I will make it about half way through, and then the book becomes reference material, or a paper weight. It appears that my passion and love for DotNetNuke translates into the attention span I have for reading.
This book goes over everything that you'd want to know about DotNetNuke version 5 (code-named Cambrian), but also makes sure to let us know when information applies to previous DNN versions as well.
I must immediately tell that if you bought the book for no other reason, the book is worth 5 times as much for the first chapter alone. The first chapter is, in short, OUTSTANDING! It is written by Shaun, and gives us a very telling and revealing behind the scenes view into the history of DotNetNuke. While the previous DNN books have done the same thing, this chapter has been updated in many ways, including adding background information from the last 1-2 years. These last 12-14 months have been a roller coaster for many in the DNN community and ecosystem, but as it turns out, it has been even more so for the DNN Corporation. We get an inside look at what they have gone through during the time period where they were trying to acquire funding. Most importantly to community members right now though, is the background information that Shaun offers us in his chapter about DotNetNuke Professional Edition. He tells us everything about how they came to the decision of PE, and where it's going.
Upon finishing up the chapter about DNN history, we begin with Brian's chapters, where he walks us through getting ourselves up and running with DotNetNuke. He does a great job of giving us step-by-step instructions on how to get our first DNN site running. Something I especially liked was that he had plenty of screen shots spread throughout his instructions, allowing us to very quickly determine if we were at the current step or not on our own DNN instance, or PC. He then finishes up with walking us through portal administration, and the admin and host menu.
Ryan Morgan next has a chapter outlining the modules that are included with DotNetNuke. He also gives us a descriptive overview of each.
We next are taken through Darrell's chapters about the architecture behind the DNN web pages, modules, skins, and providers. All of the preceding are now referred to as "Extensions" in the DNN project now, as they "extend" the DNN platform to allow customizable installations, and meeting (or exceeding) the requirements of most web site projects. I really loved how Darrell not only gave us the how to of the back-end of DNN, but he also sprinkled in background information about why, and included plenty of code examples of method overloads. Included in the architecture chapters are the Core API, Client API, and the membership provider. Shaun's chapter aside, this is probably my favorite section of the book.
The rest of the book is mainly written by Ryan and Stan, but the remaining chapters are no longer in order of author. They go into module development, skinning, localization, and more. He does an outstanding job of laying out the preferred alternative to building skins, that we do not see a whole lot of. His examples are written to encourage us to move to “Pure CSS” method of creating skins. I found and checked in a code typo, but otherwise, it was really great! His examples and text really show off his expertise. I just wish that the widgets had more details, as they are not yet documented anywhere else.
Stan's chapters are up next. He takes us into module development, and challenges us to first look at our project requirements to determine if and when we should write our own module. Stan’s walk-through of building a module is by far the best I have ever seen. To this point, every tutorial and walk-through I have read was not as easy to follow. I didn’t miss a step with his chapters, and had a working module, the first time through.
The book wraps up with another chapter from Shaun Walker, where he speaks about the commercialization of DotNetNuke. Unfortunately, the chapter appeared to be very out of place. The rest of the book was really aimed at the developer and user community. The way they were written, it was really obvious. However, Shaun’s chapter, while very necessary, was not. It was a very high-level look at DotNetNuke’s move to commercialization, and it assumed that the reader knew more about business than the average reader might. While I really enjoyed it, and found the information valuable, I can easily see where the average reader might not make it into the second or third page of the chapter.
I fell in love with the Wrox books a long time ago. It was and continues to be for one simple reason. I do not want to know just how to do something. I want to know WHY I am doing it. In general, the Wrox book can always be trusted to give us just that. The "why" of things is often times more important than "how." With the exception of a few chapters, I do not feel that this book accomplished this for us.
The purchase decision of this book can be weighed using two questions.
If you answered yes to either question, just buy the book. Buy it used, buy it new, get it any (legal) way that you can, because you will not be sorry. Even for those of us who might call ourselves DNN experts, there is plenty of information that we thought we knew. There is even more information about either new features or other features that might have hid from us in the past.
Get the book. And, no, I do not get any royalties. The authors do, but I don't, so that is just an honest opinion. Do yourself a favor and get the book. :)