You are on page 1of 26

DotNetNuke Overview

Stan Schultes

Enterprise architect / application developer Conference speaker, mentor, trainer Contributing Editor, Visual Studio Magazine Founder - .NET Pub Club ( Microsoft MVP

Presentation Outline

Introduction & History Installation Technical Overview Portal Features & Management Project Organization & Internals Private Assemblies Customizing / Tips & Tricks Project Futures

Web Portal Introduction

What is a Web Portal? Business Case Open Source Project DotNetNuke and Rainbow Projects Target Audiences:

Web Hosters Corporate Portal Developers

Project History & Relatives

IBuySpy web portal, IBS Workshop Rainbow (mid-02) & DotNetNuke (Dec 02) ASP.NET Starter Kits (

Portal Community Commerce Reports Time Tracker

Installation Requirements
Current: v2.1.2 Requires:

Win2K, WinXP, or Win2K3 IIS installed and operational .NET Framework V1.1 Access or SQL Server 2000 / MSDE SMTP configured if you want to use mail VS.NET 2003, or custom build environment (no SDK version available today) DNN is written in VB.NET, but you can write modules (.DLLs) in any .NET language

Demo DNN Installation

Installation Process:

Unzip the code to a directory, give ASPNET/Network Service account permissions Create a virtual directory [ Create an empty SQL database, set up DB account ] Edit web.config Browse to http://localhost/vdir Change Host and Admin passwords! Back up your current configuration Unzip the new code into the directory structure Browse to the vdir

Upgrade Process:

Whats New in Version 2

Improved admin user interface Data Provider Model Business Logic Layer Skinning Recycle Bin Scheduler Exception Management Backward compatibility for modules using the old data architecture

Technical Overview

Framework application Modular construction Dynamically loaded user controls Data access layer uses Provider model Business logic layer Online portal configuration by role Multi-portal: parent or child configuration Portals are skinnable

Demo DNN Features

Portal Management Tabs & Modules Roles & Users Files & File Uploads Child Portals

Managing Portals

Host and Admin Accounts Hosting Configuration, Modules Multiple Portals, Aliases Forms Authentication vs. Windows Authentication Service Directory: Vendors & Banner Advertising Chargeout process Bulk email (portal users)

Tabs & Modules

Tabs = portal organizational units Modules = information containers Module Options Info access controlled by Roles and Users

Roles & Users

Roles & Users - created by Admin role Role usage is up to you User registration: none, private, public, verified Specify required registration fields:

Admin User Accounts, edit mode

Files and File Uploads

Shared directory per portal (\portals\n\) File security: there isnt any by default! Set uploadable file types on Host Host Settings Set File Upload Roles on Admin File Manager Use the Sync link on File Manager if you manually copy files into directories Decompress Zip files checkbox Host file uploads vs. portal file uploads

DNN in Design Mode

DNN v2 built with VS.NET 2003 Change .sln and .webinfo file if not default DotNetNuke vdir Release mode vs. Debug mode All standard modules are integrated in .sln Build private modules in any language as separate project.

Project Organization

Directory structure:
Admin user controls for all system pages Components business logic layer Controls title, header, footer controls DesktopModules module addins Portal\n\ content directories by portal Providers data access providers

Portal Internals
web.config Global.asax HTTP Handler and portal aliases Default.aspx (DesktopDefault redirects) Everything else is .ascx (user controls) Controls: SolPart menu, FreeTextBox, SharpZipLib

Data Access / Business Logic

Data access based on a Provider model Databases supported:

Access (default), SQL Server 2000/MSDE (future) mySQL, Oracle

Business Logic Layer:

Abstracts the data layer from the portal Custom Business Object (CBO) helper

DotNetNuke Architecture

Making the Portal Your Own

Containers DNN V2 is now skinnable by portal! CSS Style sheet Modify the core code Integrate custom modules Build your own private assemblies

Demo - Customization
CSS Style Sheet Containers Skinning

Demo Install a private assy

Build the assembly separately Package as .zip with .dnn manifest file Upload to portal from Host account Configure the module Four examples are provided:

Page Title Survey Users Online Whois

Building a Private Assembly

Find a similar standard module and copy it Database tables & SPs Data component Create user controls for display & editing Style sheet additions Project integration options PA installation files & docs Article in Dec 2003 Visual Studio Magazine

DNN Tips & Tricks

Try to minimize core customization When upgrading compare codebases & eliminate obsolete code Use VSS for code & build control Interactions between logins w/ multiple instances Watch forums & bug lists for fixes (see #1 above)

Project Futures

Localization static / dynamic Site Search Friendly URLs Private Assembly Architecture Windows Authentication / Tabs SSL Enhanced File Management / Security Hierarchical portals Web Farm Support


Resources zine/columns/gettingstarted/ DNN ML: DNN XXL: