Review: Building Websites with VB.NET and DotNetNuke 3.0


I’ve had the priviledge of reading Dan Egan’s Building Websites with VB.NET and DotNetNuke 3.0 recently, and there are other reviews out there, I figured I’d chime in also.


Overall, I think this is a better book for the DNN beginner than the WROX book (see http://www.rjdudley.com/blog/ReviewProfessionalDotNetNukeASPNETPortals.aspx), and is more suitable to the non-technical people who may be administrating the portal, but not developing for it.  It’s not perfect, but I think these users will appreciate some of the extra work Dan put into this book.  Most of the book is written as if you are building a coffehouse locator together, so much of the book flows from one topic into another, and is written with a point.


Chapter 1 starts you with an overview of portals in general, and explains why DNN is a very good choice.  Dan also lays the groundwork for the portal you’ll be building (Coffe Connections), and demonstrates a technique called “user stories” than can help design an effective portal.


Chapter 2 covers installation on a local machine, which I think many users may not need to worry about.  It’s not something everyone needs to know, but it’s a good idea to familiarize oneself with the information even if you won’t be performing the installation.


Chapter 3 really gets into the meat of DotNetNuke.  It’s probably the best coverage of users, roles and pages and how they operate in DotNetNuke I’ve seen.  There is a chunk of very technical information regarding the Membership Provider; if you’re not developing for DNN, you can safely ignore this section and not miss anything.  Useful information for all in this chapter includes how to control user registration, how to create pages and control access to them using user roles.  This chapter is written using the user stories created in chapter 1.


Chapter 4 is great.  This chapter covers all the standard modules included with DotNetNuke, with a simple explanation.  Coffee Connections isn’t tied into this chapter too tightly, but it fits.  Dan went above the usual descriptions of the modules, and includes some “Practical Purposes” of each module, and how to administrate the modules.  This is a very useful chapter for anyone who will be working with DNN.


Chapter 5 covers the host and admin tools.  This seems a little out of order, but contains great information on how to administer your portal.  It covers the difference between ‘host’ and ‘admin’ logins, how to change site settings, upload new images to be used on the site, view logs and a few other features.


Chapters 6 and 7 get way off course in the context of building Coffee Connections.  They contain some very detailed technical information, more suitable for the developer than administrator.  The non-technical administrator can skip over these chapters and not miss too much.  For the developer, chapter 6 covers caching, config files, providers and other detailed information you’ll need to develop custom modules.  Chapter 7 is an introduction into building custom modules (called “Private Assemblies”) in DNN.  Included are discussions of setup and adding the proper user controls (you need at least 3 ASCX files–a View, an Edit, and a Settings), packaging your module and adding it to a site, and creating a business logic layer and a data access layer using the database provider module.  Extensive code examples in VB.NET are provided.  The sample module you’re building is a custom Coffee Shop Listing control for Coffee Connections.  This chapter alone is nearly 1/5 of the book’s almost 300 pages, and is very detailed.


Chapter 8 covers creating DNN skins and containers, and how to apply them to your site.  You create Coffee Connections’ skin using Visual Studio, and ending up with an HTML and token based skin.  This is a short chapter, and doesn’t go too deep into skinning (but compared to custom modules, skinning isn’t a deep subject anyway), but you’ll be able to create DNN skins after reading this chapter.


Chapter 9 lists some must-have modules, where to find them and how to use them.  Another great chapter, and I now use several modules I didn’t know about until I read this chapter.


Chapter 10 covers deploying your portal to a live site, using FTP and SQL Server Enterprise Manager.  Presumably, many readers will already have passed this point, but it’s good for the beginner ready to go live.


Chapter 11 covers one of DNN’s best features–supporting multiple portals from a single installation.  This is exceptionally useful for a school or other setup where one parent portal may be the gateway to the portals of other departments, etc.


Chapter 12 covers the Provider Model as its implemented in DNN.  If you’re new to the provider model, DNN is a very complicated example to try and learn from.  Chapter 12 will bring you up to speed with the theory of the provider model so you’ll be able to work with DNN’s implementation effectively.


Overall, I think this book is better for the non-technical user than WROX’s book, but adds technical information in a few spots that can distract such a user.  If you’re a hard core DNN developer, DNN’s book is probably the better technical manual (being written by the DNN Core Team, you’d expect that), but this book makes an excellent secondary reference.