Introduction to Dot Net Nuke 311

22
Introduction to Introduction to DotNetNuke 3.1.1 DotNetNuke 3.1.1 Chris Dufour Chris Dufour Software Architect, EP Canada Software Architect, EP Canada [email protected] [email protected]

Transcript of Introduction to Dot Net Nuke 311

Page 1: Introduction to Dot Net Nuke 311

Introduction to Introduction to DotNetNuke 3.1.1DotNetNuke 3.1.1

Chris DufourChris Dufour

Software Architect, EP CanadaSoftware Architect, EP Canada

[email protected]@epcanada.com

Page 2: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

AgendaAgenda

DotNetNuke overviewDotNetNuke overview

FeaturesFeatures

Installation requirements and Installation requirements and walkthroughwalkthrough

Portal overviewPortal overview

Create and manage a new portalCreate and manage a new portal

Custom module development overviewCustom module development overview

Develop a Blog custom moduleDevelop a Blog custom module

Page 3: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

OverviewOverview

DotNetNuke is an open source (free), ASP.NET DotNetNuke is an open source (free), ASP.NET based web portal applicationbased web portal applicationStarted by Shaun Walker of Perpetual Motion Started by Shaun Walker of Perpetual Motion Interactive Systems Inc. in Jan. 2002 as an Interactive Systems Inc. in Jan. 2002 as an extension to IBuySpy, initially called IBuySpy extension to IBuySpy, initially called IBuySpy Workshop.Workshop.Large community support, ASP.NET forums.Large community support, ASP.NET forums.Written in VB.NETWritten in VB.NETTarget Audiences: Target Audiences:

Web HostersWeb Hosters Corporate Portal DevelopersCorporate Portal Developers Individual UsersIndividual Users

Page 4: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

FeaturesFeatures

Multi portal implementationRole based securitySkinning, provides flexibility of design.Content is editable in-line and searchable.Various tools provided – traffic log reporting, file management, bulk email, payment handling, vendor management.Comes with several modules built into the core.Customizable through content modules, skins, data providers, language packs, and templates

Page 5: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

Installation RequirementsInstallation Requirements

Win2K, WinXP, or Win2K3Win2K, WinXP, or Win2K3

IIS installed and operationalIIS installed and operational

.NET Framework V1.1.NET Framework V1.1

SQL Server 2000 or MSDESQL Server 2000 or MSDE

SMTP configured if you want to use SMTP configured if you want to use mailmail

VS.NET 2003, or custom build VS.NET 2003, or custom build environment for developmentenvironment for development

Page 6: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

InstallationInstallation

Download the latest code from Download the latest code from www.dotnetnuke.comwww.dotnetnuke.com, and unzip it to a folder, and unzip it to a folder

In a local intranet configuration, create a In a local intranet configuration, create a Virtual Directory in IIS called DotNetNuke that Virtual Directory in IIS called DotNetNuke that points to this physical directory. points to this physical directory.

Create a Database in SQL Server and Create a Create a Database in SQL Server and Create a User with db_owner privileges.User with db_owner privileges.

Give the ASP.NET worker process the Give the ASP.NET worker process the appropriate Security access to the folders of appropriate Security access to the folders of your website. your website.

Page 7: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

Installation - ContinuedInstallation - Continued

Alter SiteSqlServer setting in Alter SiteSqlServer setting in web.configweb.configBrowse to the root folder – in a local Browse to the root folder – in a local environment this will probably be environment this will probably be http://http://localhost/DotNetNukelocalhost/DotNetNuke, while on , while on a remote installation it will be a remote installation it will be www.mydomain.comwww.mydomain.com. . Assembly version will be detected, Assembly version will be detected, and schema and data scripts will and schema and data scripts will automatically build applicationautomatically build application

Page 8: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

Demo - InstallationDemo - Installation

Page 9: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

Portal OverviewPortal Overview

Portals = websites (unique URLs)Portals = websites (unique URLs) Templates are an easy way to create sitesTemplates are an easy way to create sites Create many sub-portals in one installationCreate many sub-portals in one installation DNN supports the mapping of multiple aliases to a single portalDNN supports the mapping of multiple aliases to a single portal

Host

gtaeast.torontoug.net

gtaeast.torontoug.net/cert

www.torontocodecamp.com

Page 10: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

Management OverviewManagement Overview

RolesRoles & Users & Users

Host Site ManagementHost Site Management

Portal ManagementPortal Management

Files & File UploadsFiles & File Uploads

Vendors & Banner AdvertisingVendors & Banner Advertising

NewslettersNewsletters

Localization & LanguageLocalization & Language

Page 11: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

DemoDemo – Create New Portal – Create New Portal

Page 12: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

WhatWhat are Modules? are Modules?

CM’s allow CM’s allow youyou to extend core DNN to extend core DNN functionalityfunctionality

CM’s allow you to add functionality to DNNCM’s allow you to add functionality to DNN

Written in any .net languageWritten in any .net language

Compiled assemblies.Compiled assemblies.

Can implement multiple data providersCan implement multiple data providers

Page 13: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

DevelopmentDevelopment Process Process

Develop

Create your Custom

Functionality(Developer)

Pack

Package Module for Installation(Developer)

Deploy

Install into Portal

(Admin)

Setup

Initial Project Creation in

Visual Studio(Developer)

Page 14: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

SetupSetup

CreateCreate a new class project under a new class project under /DesktopModules for module/DesktopModules for moduleName project appropriately Name project appropriately (CompanyName.Module)(CompanyName.Module)Create a new class project under Create a new class project under /DesktopModules/Module/Providers/SqlD/DesktopModules/Module/Providers/SqlDataProvider for data providerataProvider for data providerName project appropriately Name project appropriately (CompanyName.ModuleSqlDataProvider)(CompanyName.ModuleSqlDataProvider)Add reference to DotNetNuke.dllAdd reference to DotNetNuke.dllChange compilation path to Change compilation path to /DotNetNuke/Bin/DotNetNuke/Bin

Setup

Initial Project Creation in

Visual Studio(Developer)

Page 15: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

DevelopDevelop

Add Add UserUser Controls to Project Controls to Project

User Controls must inherit User Controls must inherit Entities.Modules.PortalModuleEntities.Modules.PortalModuleBaseBase

Develop as “Normal” Develop as “Normal”

Register Controls through Register Controls through Portal for DebuggingPortal for Debugging

Develop

Create your Custom

Functionality(Developer)

Page 16: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

PackPack

Write Write XmlXml Manifest File Manifest File (Skin.Xml)(Skin.Xml)

Package into Zip FilePackage into Zip File

DistributeDistribute

Pack

Package Module for Installation(Developer)

Page 17: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

DeployDeploy

Install to your portal through Install to your portal through “Module Definitions”“Module Definitions”

Add to any page (Module will Add to any page (Module will appear in list now)appear in list now)

Deploy

Install into Portal

(Admin)

Page 18: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

Data Data ArchitectureArchitecture

Page 19: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

Data Data AccessAccess Layer (DAL) Layer (DAL)

Data access based on a Provider model. “a Data access based on a Provider model. “a provider is simply a contract between an API provider is simply a contract between an API and the Business Logic/Data Abstraction and the Business Logic/Data Abstraction Layer.” Layer.” VS2005 extensively uses this model. VS2005 extensively uses this model. DNN 3.0x supports SQL Server 2000/MSDE DNN 3.0x supports SQL Server 2000/MSDE

DataProvidersDataProviders Access DataProvider existed in 2.x, but is now a Access DataProvider existed in 2.x, but is now a

separate open source project.separate open source project. Commercial mySQL and Oracle providers available.Commercial mySQL and Oracle providers available.

Concrete data provider inherits from Abstract Concrete data provider inherits from Abstract Data Provider defined in your moduleData Provider defined in your module

Page 20: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

Business Logic Layer (BLL)Business Logic Layer (BLL)

Divided into two classes:Divided into two classes: ModuleInfo: Contains the properties for our ModuleInfo: Contains the properties for our

object.object. ModuleController: Contains wrapper methods ModuleController: Contains wrapper methods

for calling the abstraction layer to populate an for calling the abstraction layer to populate an arraylist of objects (ModuleInfo).arraylist of objects (ModuleInfo).

Page 21: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

Presentation Layer (UI)Presentation Layer (UI)

Edit and View controls inherits from PortalModuleBaseEdit and View controls inherits from PortalModuleBase provides values for Settings hash, ModuleID, security, provides values for Settings hash, ModuleID, security,

TabIDTabID Typical module interfaces:Typical module interfaces:

IActionable – settings menu handlingIActionable – settings menu handlingIPortable – for module import/exportIPortable – for module import/exportISearchable – new search interfaceISearchable – new search interface

Settings control inherits from ModuleSettingsBaseSettings control inherits from ModuleSettingsBase for populating settings, and view control for viewing for populating settings, and view control for viewing

datadata Displays under module settingsDisplays under module settingsBinds the objects from the controller class to our controls.Binds the objects from the controller class to our controls.Utilize DNN user controlsUtilize DNN user controls

Page 22: Introduction to Dot Net Nuke 311

Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005Introduction to DNN 3.1.1 - East of Toronto .NET User Group - Oct 27th, 2005

Demo – Create Blog ModuleDemo – Create Blog Module