Description

DotNetNuke is a programming framework that helps you create and deploy web projects in ASP.NET 2.0. Its ease of use means that even non-programmers can take advantage of the ASP.NET 2.0 features when building a web site. It integrates with many of Microsoft's other free products, like SQL Server 2005 Express, which makes it a powerful and attractive option for developing web sites.

Beginning DotNetNuke 4.0 Website Creation in VB 2005 with Visual Web Developer 2005 Express contains detailed instructions for the installation of DotNetNuke, Visual Web Developer, and SQL Server 2005. This ensures that no matter what your level or ability, you'll have a working suite of tools as you work through the book and your ASP.NET 2.0 career. The book also features tutorials on creating and publishing an ASP.NET 2.0 web site written in Visual Basic 2005 - taking care not to exclude anyone who's utilizing this book strictly to get up to speed on DotNetNuke.

CONTENTS:

About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
About the Technical Reviewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix

CHAPTER 1 The Basics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
What You Need to Know. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Programming Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Web Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
What You Need to Have . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Configuring the Browser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

CHAPTER 2 The Express and DotNetNuke Combination . . . . . . . . . . . . . . . 25
Microsoft .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Before .NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
What .NET Fixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Garbage Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Safe Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Versioned Assemblies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Complete Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Common Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
.NET Remoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Reversion to Configuration Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
No Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
vii
The Evolution of DotNetNuke. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
DotNetNuke Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

CHAPTER 3 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Installing IIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Installing Visual Basic Express Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Installing Visual Web Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Installing DotNetNuke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
A Better Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Using VWD to Complete the DNN Install . . . . . . . . . . . . . . . . . . . . . . . 51
Compiling and Running DotNetNuke . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Installing and Configuring SQL Server Express Edition. . . . . . . . . . . . . . . . 63
Installing SQL Server Express . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

CHAPTER 4 Primary Visual Basic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
The Visual Basic Integrated Development Environment . . . . . . . . . . . . . . . 74
The Look and Feel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Creating a New Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Starting the Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Project Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Designing the Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Adding the Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Trying the Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

CHAPTER 5 Visual Web Developer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
The VWD IDE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
The Look and Feel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
The Code-Behind File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Coding the Event Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

Adding More Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
The New Web Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
The HTML Code Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Completing the Code-Behind. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Changing State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

CHAPTER 6 DotNetNuke Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
A DotNetNuke Review. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
What Now? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
How DotNetNuke Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
A Look at Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Editing a DNN Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
The Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Setting Up the Site. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Creating Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

CHAPTER 7 Creating a DNN Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Creating the Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Creating Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Viewing the SQL Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Starting the Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
What Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Enhancing the Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
The Database Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
The Database Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
The Business Logic Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
The Presentation Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242

CHAPTER 8 Finishing the DotNetNuke Module . . . . . . . . . . . . . . . . . . . . . . . . 243
Setting Up the Code Transfer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
The CalculateHours Method. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
The WeekPunches Class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
The FillData Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Initial State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Editing the ViewTimePunch Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Member Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
The DisplayWeek Method. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
The Combo Box Event Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
The Punch Button Event Handler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
The Page Load Event Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Last Edit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Testing It All Out. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Looking at the Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

CHAPTER 9 DNN Permissions and Portals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
The Host Role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
The Registered User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
The Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
All Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Unauthenticated Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
The Administrator Role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Managing the Web Site. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
A New Role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Adjusting Page Permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Testing the Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Managing Portals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
What Is a DNN Portal?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Creating the Portal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Editing the Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
The Look and Feel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294

CHAPTER 10 DNN Hosting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Hosting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
What You Get From a Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Downloading Your Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Finding a Host. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Installing a Skin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Uploading a New Skin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
DNN Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Unauthorized Break-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Secure Sockets Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

CHAPTER 11 Creating a DNN Skin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
What Is a Skin? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
How DNN Does Skins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
DNN Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
CSS Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Using a Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Editing the Skin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Rearranging the Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Adjusting the .css File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Testing the Skin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Packaging the Skin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Creating the Test Harness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Uploading the Skin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Skin Edit Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
The Last Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Other Skinning Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
What Else Can Be Skinned?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Creating a Container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Copying a Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Editing the Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Packaging the Container. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371

CHAPTER 12 JavaScript and Ajax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
JavaScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
What Can JavaScript Do?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
JavaScript Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
When to Use JavaScript in ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . 376
A Small Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Ajax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Ajax and JavaScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Ajax Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
ASP.NET and Ajax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
A Small Ajax Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400

CHAPTER 13 Next Steps and Suggestions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
ASP.NET Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Investigating ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Other .NET Stuff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
More Fun with DotNetNuke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Other DNN Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Published

Dec 2006

Publisher

APRESS

ISBN

9781590597675

Pages

424

Static Book Details Index Page - Click Here to go to Computer Manuals Website