Download - Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

Transcript
Page 1: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

Introduction to Introduction to DotNetNukeDotNetNuke

Scott McCullochScott McCulloch DotNetNuke Core TeamDotNetNuke Core Team

www.smcculloch.netwww.smcculloch.net

Page 2: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

IBUYSPYIBUYSPY

Developed by Vertigo Software to Developed by Vertigo Software to showcase ASP.NET 1.0showcase ASP.NET 1.0

VB.Net/C#VB.Net/C# Dynamic Site Layout using User Dynamic Site Layout using User

ControlsControls Portal Module ImplementationPortal Module Implementation Portal Configuration using Sql ServerPortal Configuration using Sql Server Role-Based SecurityRole-Based Security Great Starting Point!Great Starting Point!

Page 3: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

IBUYSPY - ProblemsIBUYSPY - Problems

Support/Enhancements – No longer Support/Enhancements – No longer being worked on! being worked on! (www.aspsmith.com/ibs)(www.aspsmith.com/ibs)

Missing FeaturesMissing Features– Multiple CommunitiesMultiple Communities– Portal ManagementPortal Management

CustomisationCustomisation– Module Development Module Development – Graphical ChangesGraphical Changes– Core ExtensibilityCore Extensibility

Page 4: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

DotNetNukeDotNetNuke

Page 5: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

The DotNetNuke ProjectThe DotNetNuke Project Started by Shaun Walker of Perpetual Started by Shaun Walker of Perpetual

Motion Interactive Systems Inc. in Jan. 2002 Motion Interactive Systems Inc. in Jan. 2002 as an extension to IBuySpy, initially called as an extension to IBuySpy, initially called IBuySpy Workshop.IBuySpy Workshop.

105,538 Registered Users (18105,538 Registered Users (18thth Nov, 2004) Nov, 2004) Now consists of 30 core team developers.Now consists of 30 core team developers. Large community support, ASP.NET forums.Large community support, ASP.NET forums. Written in VB.NETWritten in VB.NET Open Source license.Open Source license. 10,000 to over 50,000 lines of code10,000 to over 50,000 lines of code

Page 6: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

TimelineTimeline

01/1/2002 - IBS Release01/1/2002 - IBS Release 24/12/2002 – Released on ASP.Net forums24/12/2002 – Released on ASP.Net forums

– Shaun Walker – Perpetual Motion (Canada)Shaun Walker – Perpetual Motion (Canada)- IBuySpy WorkshopIBuySpy Workshop

15/3/2003 – 15/5/200315/3/2003 – 15/5/2003- Re-branded as DotNetNuke (1.05 – 1.08)Re-branded as DotNetNuke (1.05 – 1.08)- Private AssembliesPrivate Assemblies

1/9/2003 – DNN 1.10 (x)1/9/2003 – DNN 1.10 (x)- Core team formed world-wideCore team formed world-wide- Stable release with some security patchesStable release with some security patches

Page 7: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

Timeline (cont.)Timeline (cont.)

23/3/2004 – DNN 2.023/3/2004 – DNN 2.0– Complete Re-Write Complete Re-Write – 1500+ Source Control 1500+ Source Control

Transactions/MonthTransactions/Month- Provider Pattern for Data AccessProvider Pattern for Data Access- Skinning EngineSkinning Engine

4/6/2004 – DNN 2.14/6/2004 – DNN 2.1- Providers for Scheduler/Logging/RichTextProviders for Scheduler/Logging/RichText- Crucial bug fixesCrucial bug fixes

Page 8: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

Timeline (cont.)Timeline (cont.)

The FutureThe Future- Multi-Lingual (2.2)Multi-Lingual (2.2)- Friendly Urls (2.2)Friendly Urls (2.2)- Search (2.2)Search (2.2)- Whidbey Providers (2.2)Whidbey Providers (2.2)- www.dotnetnuke.comwww.dotnetnuke.com (roadmap) (roadmap)

Page 9: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

More Features!More Features!

Page 10: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

Completing the Portal Completing the Portal ImplementationImplementation

Multiple Portals per InstallationMultiple Portals per Installation Extended Basic FeaturesExtended Basic Features

– User Membership, Role Membership, User Membership, Role Membership, Content AuthoringContent Authoring

Implement Advanced FeaturesImplement Advanced Features– Search Engine Optimization, Banner Search Engine Optimization, Banner

Advertising, Affiliate Relationship Advertising, Affiliate Relationship Management, and HostingManagement, and Hosting

Page 11: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

Portal ArchitecturePortal Architecture

1 Installation (1DB/Web)

Host

CarPoint.ninemsn.com.au

BikePoint.ninemsn.com.au

BoatPoint.ninemsn.com.au

Page 12: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

Core ExtensibilityCore Extensibility

Page 13: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

Provider PatternProvider Pattern

““a a providerprovider is simply a contract is simply a contract between an API and the Business between an API and the Business Logic/Data Abstraction Layer.Logic/Data Abstraction Layer.””

Whidbey Pattern for ExtensibilityWhidbey Pattern for Extensibility Build new core features using this Build new core features using this

Pattern!Pattern! Modules built using this pattern as Modules built using this pattern as

well!well!

Page 14: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

Portal Architecture for Data Portal Architecture for Data AccessAccess

Abstract Base Class

ConfigAccessDataProvider

SqlDataProvider

OracleDataProvider

Page 15: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

Provider Pattern Provider Pattern EverywhereEverywhere

Data ProviderData Provider Rich Text ProviderRich Text Provider Logging ProviderLogging Provider Scheduler ProviderScheduler Provider Whidbey Providers (Membership, Whidbey Providers (Membership,

Role, Profile) coming soon!Role, Profile) coming soon! Everywhere customisation *may* Everywhere customisation *may*

occur!occur!

Page 16: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

SkinningSkinning

Page 17: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

The Skinning ProcessThe Skinning Process

Design

Design Skin in Any Editor(Designer)

Replace

Mark Dynamic Section in Skin

with special PlaceHolders

(Designer)

Pack

Package into Zip File for Distribution(Designer)

Deploy

Install into your portal

(Admin)

Page 18: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

SetupSetup

1.1. Design HTML in any Design HTML in any editoreditor

Note: “Normal Design” Note: “Normal Design” as you would design any as you would design any websitewebsite

Design

Design Skin in Any Editor(Designer)

Page 19: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

ReplaceReplace

2.2. Mark sections to inject Mark sections to inject module (ContentPane, module (ContentPane, LeftPane)LeftPane)

3.3. Mark dynamic Mark dynamic functionality based on functionality based on Skin Objects ([Title], Skin Objects ([Title], [Menu], [Login])[Menu], [Login])

Note: You can write your Note: You can write your own Skin Objects! (Not own Skin Objects! (Not Covered)Covered)

Replace

Mark Dynamic Section in Skin

with special PlaceHolders

(Designer)

Page 20: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

PackPack

4.4. Pack up all files into a Pack up all files into a ZipZip

Pack

Package into Zip File for Distribution(Designer)

Page 21: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

SetupSetup

5.5. Install through File Install through File Manager as “Skin Manager as “Skin Package”Package”

Note: You can apply at Note: You can apply at “Host”, “Portal”, “Page”“Host”, “Portal”, “Page”

Deploy

Install into your portal

(Admin)

Page 22: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

Further NotesFurther Notes

You can write your own Skin Objects You can write your own Skin Objects (e.g. replacement menu’s) (e.g. replacement menu’s)

Container Packages are the content Container Packages are the content around a Modulearound a Module

You can write Skin’s as ASCX to skip You can write Skin’s as ASCX to skip conversion Processconversion Process

Page 23: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

More InformationMore Information

Skinning Guide (/Documentation)Skinning Guide (/Documentation) Skinning Contest (Skinning Contest (

http://www.dotnetnuke.com/contesthttp://www.dotnetnuke.com/contest ) ) Skin Object Example Skin Object Example

(/DesktopModules/PageTitle/)(/DesktopModules/PageTitle/) Free/Buy Skins (Free/Buy Skins (

http://www.dnnskins.comhttp://www.dnnskins.com, , http://www.snowcovered.comhttp://www.snowcovered.com ) )

Page 24: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

Module Module DevelopmentDevelopment

Page 25: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

What are Modules?What are Modules?

Written in .NET code, C#, VB.NETWritten in .NET code, C#, VB.NET Promotes code reuse.Promotes code reuse. Allows you to extend DotNetNuke.Allows you to extend DotNetNuke. Customizable (using the module Customizable (using the module

container)container) Compiled assemblies.Compiled assemblies.

Page 26: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

Development ProcessDevelopment Process

Setup

Initial Project Creation in

Visual Studio(Developer)

Develop

Create your Custom

Functionality(Developer)

Pack

Package Module for Installation(Developer)

Deploy

Install into Portal

(Admin)

Page 27: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

SetupSetup

Create a new Class Project Create a new Class Project (/DesktopModules)(/DesktopModules)

Compilation Path (../../bin/)Compilation Path (../../bin/) Name Project Name Project

Appropriately Appropriately (CompanyName.Module)(CompanyName.Module)

Reference DotNetNuke Reference DotNetNuke ProjectProject

Setup

Initial Project Creation in

Visual Studio(Developer)

Page 28: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

DevelopDevelop

Add User Controls to Add User Controls to ProjectProject

User Controls must User Controls must Implement Implement “PortalModuleControl”“PortalModuleControl”

Develop as “Normal” Develop as “Normal” Register Controls through Register Controls through

Portal for DebuggingPortal for Debugging

Develop

Create your Custom

Functionality(Developer)

Page 29: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

PackPack

Write Xml Manifest File Write Xml Manifest File (ModuleName.dnn)(ModuleName.dnn)

Package into Zip FilePackage into Zip File Distribute Distribute

Pack

Package Module for Installation(Developer)

Page 30: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

DeployDeploy

Install to your portal Install to your portal through “File Manager”through “File Manager”

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

Deploy

Install into Portal

(Admin)

Page 31: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

More InformationMore Information

Module Developers Guide Module Developers Guide (/Documentation)(/Documentation)

www.smcculloch.netwww.smcculloch.net (Sample Modules/CodeSmith Templates)(Sample Modules/CodeSmith Templates)

www.dotnetnuke.dkwww.dotnetnuke.dk (Tutorials/Dev Environment)(Tutorials/Dev Environment)

dnnjungle.vmasanas.netdnnjungle.vmasanas.net (Tutorials/VS.NET Enterprise Templates)(Tutorials/VS.NET Enterprise Templates)

Page 32: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

ConclusionConclusion

Open Source Application with Strong Open Source Application with Strong Development CommunityDevelopment Community

Extensible through Provider PatternExtensible through Provider Pattern Customisable through Skinning & Customisable through Skinning &

ModulesModules ““Off the Shelf” Portal Application at Off the Shelf” Portal Application at

the right price!the right price!

Page 33: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

Questions?Questions?

Page 34: Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team .

www.DotNetNuke.comwww.DotNetNuke.com

Scott McCullochDotNetNuke Core Team

[email protected]