www.it-ebooks.info
Walker
ffirs.tex V3 - 01/22/2009
6:17pm
Page i
www.it-ebooks.info
Professional
®
DotNetNuke 5
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx
Chapter 1: An Inside Look at the Evolution of DotNetNuke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Chapter 2: Installing DotNetNuke Version 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Chapter 3: Portal Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Chapter 4: Portal Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Chapter 5: Host Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Chapter 6: Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Chapter 7: DotNetNuke Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Chapter 8: Core DotNetNuke APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Chapter 9: Member Role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Chapter 10: Client API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Chapter 11: Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Chapter 12: Beginning Module Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Chapter 13: Developing Modules: the Database Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Chapter 14: Developing Modules: The Business Logic Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Chapter 15: Developing Modules: The Presentation Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Chapter 16: Skinning DotNetNuke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Chapter 17: Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
Chapter 18: DotNetNuke’s Commercial Evolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
Appendix A: Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
Appendix B: System Message Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
Walker ffirs.tex
V3 - 01/22/2009
6:17pm
Page ii
www.it-ebooks.info
Walker
ffirs.tex V3 - 01/22/2009
6:17pm
Page iii
www.it-ebooks.info
Professional
®
DotNetNuke 5
Walker
ffirs.tex
V3 - 01/22/2009
6:17pm
Page iv
www.it-ebooks.info
Walker
ffirs.tex V3 - 01/22/2009
6:17pm
Page v
www.it-ebooks.info
Professional
®
DotNetNuke 5
Open Source Web Application Framework
for ASP.NET
Shaun Walker
Brian Scarbeau
Darrell Hardy
Stan Schultes
Ryan Morgan
Wiley Publishing, Inc.
Walker
ffirs.tex
V3 - 01/22/2009
6:17pm
Page vi
www.it-ebooks.info
Professional DotNetNuke®5
Published by
Wiley Publishing, Inc.
10475 Crosspoint Boulevard
Indianapolis, IN 46256
www.wiley.com
Copyright © 2009 by Wiley Publishing, Inc., Indianapolis, Indiana
Published by Wiley Publishing, Inc., Indianapolis, Indiana
Published simultaneously in Canada
ISBN: 978-0-470-43870-1
Manufactured in the United States of America
10 9 8 7 6 5 4 3 2 1
Library of Congress Cataloging-in-Publication Data is available from the publisher.
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by
any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under
Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the
Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center,
222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Legal Department, John Wiley & Sons., 111 River Street, Hoboken, NJ 07030, (201)
748-6011, fax (201) 748-6008, or online at />Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with
respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties,
including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended
by sales or promotional materials. The advice and strategies contained herein may not be suitable for every
situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting,
or other professional services. If professional assistance is required, the services of a competent professional person
should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an
organization or Web site is referred to in this work as a citation and/or a potential source of further information
does not mean that the author or the publisher endorses the information the organization or Web site may provide
or recommendations it may make. Further, readers should be aware that Internet Web sites listed in this work may
have changed or disappeared between when this work was written and when it is read.
For general information on our other products and services please contact our Customer Care Department within the
United States at (877) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.
Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress
are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and
other countries, and may not be used without written permission. DotNetNuke®, DNN®, and the DotNetNuke logo
are trademarks or registered trademarks of DotNetNuke Corporation. All other trademarks are the property of their
respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be
available in electronic books.
Walker
ffirs.tex V3 - 01/22/2009
6:17pm
Page vii
www.it-ebooks.info
I would like to dedicate my part of this book to my parents, Sam and Virginia Hardy, my wife, Kathy Hardy, and
my God, all of whom have had a major part of making me who I am and without whom my contribution to this
book would not have been possible.
— Darrell Hardy
To my wonderful wife Laurie, who just smiles when I take on new projects when I’m already too busy. I’m a very
lucky man! Also to my sons Tyler and Erik — both in college and making that often difficult transition to
adulthood. Best of luck to you both in the coming years.
— Stan Schultes
Thank you to Jesus for saving me, my wife for being my strength, and my family and friends for always making
me laugh.
— Ryan Morgan
Walker
ffirs.tex V3 - 01/22/2009
6:17pm
Page viii
www.it-ebooks.info
Walker
f01.tex
V3 - 01/22/2009
6:19pm
Page ix
www.it-ebooks.info
About the Wrox DotNetNuke Series Editor
Shaun Walker (MVP, ASPInsider) is co-founder, Vice President of Engineering of DotNetNuke Corporation and chief architect of DotNetNuke. Shaun has 15 years of professional experience in architecting and
implementing large-scale software solutions for private and public organizations. Shaun is the original
creator and maintainer of DotNetNuke, a web application framework for ASP.NET which has spawned
the largest and most successful Open Source community project on the Microsoft platform. Based on
his significant community contributions he was recognized as a Microsoft Most Valuable Professional
(MVP) in 2004 and an ASPInsider in 2005. He is a frequent speaker at User Groups in his local area and is
a contributing author to the WROX Press books Professional DotNetNuke 4 — Open Source Web Application
Framework and Professional DotNetNuke ASP.NET Portals.
About the Authors
Brian Scarbeau is a Microsoft MVP and a seasoned computer science trainer. He has his MBA and
Certifications as a WebMaster and Network Instructor. He has spoken at various Code Camps about
DotNetNuke® and more recently at the DotNetNuke Open Force 08 event in Orlando, FL. He has developed a DotNetNuke® curriculum and a series of webcasts for Microsoft Corporation. He was also selected
by Microsoft Corporation to be part of a Faculty Advisory Board. He has traveled the United States and
Canada conducting training seminars on .NET products. Presently, he is on the Board of Directors for the
Computer Science Teacher’s Association and he started the Orlando DotNetNuke® User Group. His blog
is here: />Darrell Hardy has been designing and building data-driven applications for more than 20 years. Having
spent several years working with a management consulting firm, he brings to the table not only technical
expertise but also an understanding of the business side of the equation. His passion is for software that
matches business processes and allows for improvements in the business process as well as the software.
Currently Darrell is the Vice President of Hardy Consulting, Inc. ( />and manages several domestic and international accounts. He enjoys speaking, teaching, problem solving, and helping people become problem solvers.
Stan Schultes is an Architect and Software Developer at a mid-size, high-tech manufacturing company,
where he designs and builds engineering design automation systems. He has been building enterprise
manufacturing software and systems for more than 25 years, and building Microsoft solutions since 1994.
He has led application development teams in companies as diverse as a small startup to the Fortune 200.
Stan is a Microsoft MVP in Visual Basic, a former columnist and Contributing Editor with Visual Studio
Magazine, and has written for MSDN online. He is very active within the Microsoft developer community, and he runs or is involved in several developer groups. Stan is a prolific speaker at community
events such as the Visual Studio 2008 and 2005 launch events, Day of Patterns & Practices, Code Camps,
user groups, and DevDays. He has recorded nearly 20 MSDN webcasts, and is currently co-developing
episodes of a developer seminar series that may end up on TV. He can be reached through his web
site and blog at . Stan resides in Sarasota, FL, with his family, and that’s
where he hangs out with his geeky friends, a bunch of beer lovers, and some fitness fanatics.
Ryan Morgan is managing partner and software architect at Arrow Consulting & Design in West Palm
Beach, FL. At Arrow Consulting & Design, Ryan has designed, developed, and delivered projects for
federal and local government clients, enterprise clients with global reach, and hundreds of small businesses throughout North America and Western Europe. Ryan has used his unique mix of marketing
Walker f01.tex
V3 - 01/22/2009
6:19pm
Page x
www.it-ebooks.info
About the Wrox DotNetNuke Series Editor
background and development expertise to help audiences learn DotNetNuke at Florida Code Camps,
.NET User Groups, and webcasts at . Ryan also writes a DotNetNuke consulting blog at , a DotNetNuke skinning blog at
, and a development blog at .
About the Technical Editors
Philip Beadle (MCAD, MVP) is a founding member of the DotNetNuke Core Team, a Microsoft
Certified Application Developer, and is experienced in the development and commercial application of
the DotNetNuke framework based on Microsoft’s .NET technology. He has successfully developed and
implemented sites for clients in Australia and overseas and was recently awarded the Microsoft Most
Valuable Professional (MVP) award in ASP/ASP.NET. Philip is a regular contributor to online technical
lists and communities and is a sought-after speaker at technology conferences and .NET User Groups
such as the Victoria .Net Users Group ( />He recently completed the MSDN update tour for Australia and New Zealand and presented at
Microsoft’s Tech Ed 2005. Philip is employed as a Senior Consultant by Readify (http://readify
.com.au/Default.aspx?tabid=1), which is a group of elite consultants, specializing in technical
readiness, who help organizations evolve with emerging Microsoft technologies, keeping them a step
ahead of their competitors.
Jon Henning is a senior consultant with Solution Partners Inc. (), a
Chicago-based consulting company specializing in Microsoft technologies. He is an MCSD who has been
working with Visual Studio .NET since the PDC release. Though he has written several articles dealing
with all aspects of programming, his current love is the development of rich client-side functionality.
With the introduction of DotNetNuke v3, Jon initiated the development of the DotNetNuke ClientAPI,
which enabled developers to write rich client-side cross-browser logic against a simple API. The use of
this API can be found throughout DotNetNuke, including the DotNetNuke Suite of web controls found
at . More recently he has provided DotNetNuke AJAX Module
templates that utilize both new functionality in the ClientAPI and the Microsoft AJAX Framework at
Jon resides in Aurora, IL, with his wife Holly, and
two children, Kyle and Carter.
Charles Nurse (MVP) has been developing software for more than 25 years. He is currently Senior Architect for DotNetNuke Corporation and has been a DotNetNuke developer for more than 6 years, the last
4.5 years as a Trustee of the project. His primary role on the DotNetNuke Project is as a Core Developer.
A native of Bristol, England, he obtained a Bachelor of Arts in Chemistry from Oxford University. In 1978,
he moved to Canada to continue his studies at the University of British Columbia where he obtained a
Ph.D. (also in chemistry), and where he met his wife Eileen. More recently (2003) he completed a Post
Baccalaureate Certificate in Object Technology Programming at Simon Fraser University. In 2007 he
was made a Microsoft ASP.NET MVP and in 2008 he was elected to be a member of the ASPInsiders
group. He has spoken at a number of conferences (Software Developers Conference, DevConnections,
DevTeach) and User Groups, and has acted as Technical Advisor for two DotNetNuke-related books. He
has a blog at . He lives in Langley, BC, Canada with his wife and two
adult children, both students at Simon Fraser University.
Will Strohl is an ASP.NET architect and developer based in the Orlando area. Having been in the web
development field for more than 10 years, he began professionally in 2000. Currently, Will is the Technology Director for an exciting new online travel company called RezHub.com. He is also an active member
and President of the Orlando DotNetNuke Users Group, and a member of the reformed DotNetNuke
x
Walker
f01.tex
V3 - 01/22/2009
6:19pm
Page xi
www.it-ebooks.info
About the Wrox DotNetNuke Series Editor
Media Module Project Team. He regularly speaks at local events about DotNetNuke and the various
ways it can be used and managed. Most recently, Will has been publishing DNN videos on JumptStartTV.
Lorraine Young (DNNangel) works as a freelance consultant and maintains a web site at
. She has extensive experience in developing user documentation, and
provides training and support for DotNetNuke applications. She is the primary author of the Wiley Press
DotNetNuke for Dummies book as well as a number of DotNetNuke User Manuals, which are available
from the DotNetNuke Marketplace. She also created and maintains the free DotNetNuke Online Help
resource. Lorraine is a founding member of the DotNetNuke Core Team and a member of the Help
project team. She holds a Bachelor of Arts degree in Professional Writing and Literature and a Post
Graduate degree in Orientation and Mobility for vision-impaired adults and children.
xi
Walker
f01.tex
V3 - 01/22/2009
6:19pm
Page xii
www.it-ebooks.info
Walker
f02.tex
V3 - 01/22/2009
6:20pm
Page xiii
www.it-ebooks.info
Credits
Development Editor
Christopher J. Rivera
Associate Publisher
Jim Minatel
Production Editor
Rebecca Coleman
Project Coordinator, Cover
Lynsey Stanford
Copy Editor
Kim Cofer
Proofreader
Amy Morales, Word One New York
Editorial Manager
Mary Beth Wakefield
Indexer
Jack Lewis
Production Manager
Tim Tate
Senior Technical Editor
Charles Nurse
Vice President and Executive Group Publisher
Richard Swadley
Technical Editors
Philip Beadle
Jon Henning
Will Strohl
Lorraine Young
Vice President and Executive Publisher
Barry Pruett
Walker
f02.tex
V3 - 01/22/2009
6:20pm
Page xiv
www.it-ebooks.info
Walker
f03.tex V3 - 01/22/2009
6:20pm
Page xv
www.it-ebooks.info
Acknowledgments
It has been a pleasure working with a dedicated team of professionals while putting together the chapters
in this book. Many thanks to Charles Nurse from the DotNetNuke Core Team who answered all of our
technical questions relating to this new version. A special thanks to the Orlando DotNetNuke President,
Will Strohl, for his input. Thanks to the Wrox team of editors for their hard work of making each chapter
better with their edits. Thanks to all who have contributed to make DotNetNuke the number one web
portal that it is.
Finally, thanks to my wife Cathy for her patience, encouragement, and support.
— Brian Scarbeau
Walker
f03.tex
V3 - 01/22/2009
6:20pm
Page xvi
www.it-ebooks.info
Walker
ftoc.tex V3 - 01/22/2009
6:21pm
Page xvii
www.it-ebooks.info
Contents
Introduction
Chapter 1: An Inside Look at the Evolution of DotNetNuke
IBuySpy Portal
ASP.NET
IBuySpy Portal Forum
IBuySpy Workshop
Subscription Fiasco
Microsoft
DotNetNuke
Licensing
Core Team
XXL Fork
Trademarks
Sponsorship
Enhancements
Security Flaw
DotNetNuke 2.0
DotNetNuke (DNN) Web Site
Provider Model
Open Source Philosophy
Stabilization
Third-Party Components
Core Team Reorganization
Microsoft Membership API
‘‘Breaking’’ Changes
Web Hosters
DotNetNuke 3.0
Release Schedule
DotNetNuke Projects
Intellectual Property
Marketing
Microsoft Hosting Program
Infrastructure
xxvii
1
2
2
5
6
8
9
11
12
13
16
17
17
18
20
22
22
23
24
25
26
26
27
27
29
29
31
31
32
33
35
36
Walker
ftoc.tex V3 - 01/22/2009
6:21pm
Page xviii
www.it-ebooks.info
Contents
Branding
Tech Ed
Credibility
Trademark Policy
ASP.NET 2.0
Reorganization
Microsoft Conferences
DotNetNuke 4.0
Slashdotted
Benefactor Program
Opportunists
Yin and Yang
A New Company
Larry Augustin
Performance
DotNetNuke Marketplace
Free Module Promotion
Conferences
Microsoft Valuable Professionals
Fundraising
Awards and Accolades
DotNetNuke OpenForce 07
SLA Program
More Fundraising
CodePlex
Security Issues
IP Disputes
Term Sheets
DotNetNuke OpenForce 08
DotNetNuke Professional
Series A Announcement
DotNetNuke 5.0
Summary
Chapter 2: Installing DotNetNuke Version 5
What You Need to Install DNN 5
Installing the Starter Kit
Upgrading to DotNetNuke 5
Common Installation Issues
Summary
xviii
37
40
40
41
42
43
44
45
47
48
51
53
53
55
56
56
58
59
60
60
61
62
63
63
64
65
66
68
70
71
72
73
73
75
75
86
89
90
91
Walker
ftoc.tex V3 - 01/22/2009
6:21pm
Page xix
www.it-ebooks.info
Contents
Chapter 3: Portal Overview
Portal Organization Elements
Parent/Child Portals
Pages
Panes
Skins
Containers
Modules
User Roles
Summary
Chapter 4: Portal Administration
Who Is the Portal Administrator?
Where Do I Begin?
The Control Panel
The Site Wizard
Configuring Your Portal
Site Settings
Pages
Changing Navigational Structure
Extensions
Security Roles
Vendors
Site Log
Newsletters
File Manager
Recycle Bin
Recycling Modules
Portal Cleaning Up
Event Viewer
Site Wizard
Solutions Explorer
What’s New
Summary
Chapter 5: Host Administration
Defining the Host
Where to Start?
Installing Additional Modules
93
93
93
95
97
97
98
99
103
105
107
107
107
108
109
113
113
119
121
122
123
130
134
135
137
139
139
140
140
141
142
142
143
145
145
145
147
xix
Walker
ftoc.tex V3 - 01/22/2009
6:21pm Page xx
www.it-ebooks.info
Contents
Working with Host Settings
147
Host Settings: Basic
Host Details
Creating the Appearance
Host Payment Settings
Host Settings Advanced
Other Settings
jQuery
147
147
149
149
150
152
153
Host Portals
Portal Templates
Expired Portals
Host Module Definition
Module Package Settings
Installing a New Module
Host File Manager
Host Vendors
Host SQL
Host Schedule
Schedule Item Details
Schedule Status
Configuration
Considerations
Host Languages
Installing a New Language Pack
Globalization
Host Search Admin
Host Lists
Host SuperUser Accounts
Host Skins
Create New Skin
Install New Skin
Host Extensions
Container
Core Language Pack
Extension Language Pack
Library
Module
Provider
Skin
Skin Object
Summary
xx
155
156
157
157
160
160
163
164
164
164
165
166
168
169
169
169
170
172
173
174
177
178
178
179
180
181
181
181
182
182
183
183
184
Walker
ftoc.tex V3 - 01/22/2009
6:21pm
Page xxi
www.it-ebooks.info
Contents
Chapter 6: Modules
DotNetNuke Modules
Adding and Managing Modules on Pages
Module Layout
Module Settings
Using Modules to Display Content
User Content Modules
DotNetNuke Project Modules
Sub-Project Modules
Commercial and Open-Source Third-Party Modules
Summary
Chapter 7: DotNetNuke Architecture
Technologies Used
Provider Model
185
185
187
188
189
192
193
200
220
221
222
223
223
224
Provider Model Usage
Provider Configuration
224
226
Custom Business Objects
226
CBO Hydrator
Using the CBO Hydrator
229
230
Architectural Overview
231
Presentation Layer
Business Logic Layer
Data Access Layer
Data Layer
232
233
234
236
Security Model
Security in ASP.NET 2.0
DotNetNuke and ASP.NET 2.0
Security in DotNetNuke 4.0
Namespace Overview
Summary
Chapter 8: Core DotNetNuke APIs
Event Logging
The API
The Controller Classes
Exception Handling
The Exception Handling API
The Exceptions Class
238
238
238
239
240
242
243
243
244
244
253
253
254
xxi
Walker
ftoc.tex V3 - 01/22/2009
6:21pm
Page xxii
www.it-ebooks.info
Contents
Scheduler
HTTP Modules
HTTP Modules 101
DotNetNuke HTTP Modules
Module Interfaces
IActionable
IPortable
IUpgradeable
Inter-Module Communication
ISearchable
DotNetNuke 5.0 New Core Interfaces
Summary
Chapter 9: Member Role
Security in ASP.NET 3.5
DotNetNuke Membership Overview
Portals and Applications
Data Model for Users and Roles
Membership, Roles, and Profile Providers
Membership Provider
Roles Provider
Profile Provider
Summary
Chapter 10: Client API
Postbacks and View State
What Is the DotNetNuke Client API?
Using the DotNetNuke Client API
Client-Side Script Caching
Client and Server Communication
Starting on the Server Side
On the Client Side
Returning to the Server Side
Client API’s Callback
Life Cycle of a Client Callback
Client API–Enabled DotNetNuke Controls
Writing Custom Web Controls Using the Client API
Control Methods
Summary
xxii
258
260
260
263
269
270
278
280
281
281
284
285
287
289
290
290
291
292
293
297
299
302
303
304
305
307
310
311
312
313
315
316
317
323
324
325
326
Walker
ftoc.tex V3 - 01/22/2009
6:21pm
Page xxiii
www.it-ebooks.info
Contents
Chapter 11: Localization
Overview
Locales in DotNetNuke
Resource Files
The API
The GetString Method
The GetSystemMessage Method
Token Replacement Engine
Localizing Modules
Case 1: Handling Static Strings in the ASCX File
Case 2: Handling Static Text in Server Controls
Case 3: Handling Static Text Programmatically
Case 4: Localizing Images
Summary
Chapter 12: Beginning Module Development
Understanding Your Module Project
Business Considerations
Determine Your Module Scope
Development Environment Considerations
Starting Development
Module Development Options
WROX.Suggestion Module Overview
Configuring for Module Development
Developing with the Starter Kit
Summary
Chapter 13: Developing Modules: the Database Layer
Database Design
WROX− Suggestion Table
WROX− SuggestionType Table
Concrete Data Provider
Data Abstraction Layer
Summary
Chapter 14: Developing Modules: The Business Logic Layer
Developing the Business Logic Layer
Defining Properties for the Info Classes
SuggestionInfo Business Object
329
329
329
331
332
333
337
343
343
345
345
347
348
349
351
352
352
354
354
357
357
358
359
368
376
377
378
378
384
386
393
394
397
397
398
398
xxiii
Walker
ftoc.tex V3 - 01/22/2009
6:21pm
Page xxiv
www.it-ebooks.info
Contents
SuggestionTypeInfo Business Object
SuggestionIdInfo Business Object
SuggestionsDisplayInfo Business Object
Custom Business Object Helper Class
Optional Interface for the Business Layer Info Classes
Creating Business Objects Using the Controller Classes
SuggestionController Class
SuggestionTypeController Class
SuggestionIdController Class
SuggestionsDisplayController Class
Optional Interfaces for the SuggestionController Class
Summary
Chapter 15: Developing Modules: The Presentation Layer
Module User Controls
View Control
Secondary View Control
Settings Control
Edit Control
DotNetNuke Helper Functions
Exception Handling
Navigation URLs
Summary
Chapter 16: Skinning DotNetNuke
ASP.NET 2.0 Master Pages Versus Skinning
A Brief Introduction to Master Pages
Why DotNetNuke Still Uses Its Skinning Engine
File Organization
Skin Parsing
Building DotNetNuke Skins
ASCX Skinning Method
Controlling Layout with Panes and Stylesheets
Creating a Basic Container
Styles Guide — Stylesheet Inheritance and Core DotNetNuke Classes
Add Functionality with Skinobjects
Client-Side Widget Framework
Rotator Widget
Pane Collapse Widget
PNG Transparency Widget
Relocation Widget
xxiv
401
402
403
405
405
407
408
409
410
411
411
416
419
419
421
430
436
446
454
454
455
456
459
460
460
461
461
462
464
468
468
472
475
476
492
494
494
495
495