Introduction to DotNetNuke

35
Introduction to Introduction to DotNetNuke DotNetNuke Agus Kurniawan, MVP (C#) Agus Kurniawan, MVP (C#) [email protected] [email protected] Software Architect – PT. Astra Software Architect – PT. Astra International Tbk International Tbk Group Leader of .NET Mobile - INDC Group Leader of .NET Mobile - INDC

description

Introduction to DotNetNuke. Agus Kurniawan, MVP (C#) [email protected] Software Architect – PT. Astra International Tbk Group Leader of .NET Mobile - INDC. Agenda. History DotnetNuke overview More Features! Core Extensibility Skinning Module Development. A Little History. - PowerPoint PPT Presentation

Transcript of Introduction to DotNetNuke

Page 1: Introduction to DotNetNuke

Introduction toIntroduction toDotNetNukeDotNetNuke

Agus Kurniawan, MVP (C#)Agus Kurniawan, MVP (C#)[email protected]@ai.astra.co.id

Software Architect – PT. Astra International Software Architect – PT. Astra International TbkTbk

Group Leader of .NET Mobile - INDCGroup Leader of .NET Mobile - INDC

Page 2: Introduction to DotNetNuke

AgendaAgenda

HistoryHistory DotnetNuke overviewDotnetNuke overview More Features!More Features! Core ExtensibilityCore Extensibility SkinningSkinning Module DevelopmentModule Development

Page 3: Introduction to DotNetNuke

A Little HistoryA Little History

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 4: Introduction to DotNetNuke

IBUYSPY - ProblemsIBUYSPY - Problems

Support/Enhancements – No longer being Support/Enhancements – No longer being worked on!worked on!

Missing FeaturesMissing Features– Multiple CommunitiesMultiple Communities– Portal ManagementPortal Management– Hierarchical Site Layout (Menu)Hierarchical Site Layout (Menu)

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

Page 5: Introduction to DotNetNuke

DotNetNukeDotNetNuke

Page 6: Introduction to DotNetNuke

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.

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 7: Introduction to DotNetNuke

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

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

3/15/2003 –5/15/20033/15/2003 –5/15/2003- Re-branded as DotNetNuke (1.05 – 1.08)Re-branded as DotNetNuke (1.05 – 1.08)- Private AssembliesPrivate Assemblies- Included MenuIncluded Menu

9/1/2003 – DNN 1.10 (x)9/1/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 8: Introduction to DotNetNuke

Timeline (cont.)Timeline (cont.)

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

Transactions/MonthTransactions/Month- Provider Pattern for Data Access Provider Pattern for Data Access

- http://msdn.microsoft.com/library/en-us/dnaspnet/html/asp02182004http://msdn.microsoft.com/library/en-us/dnaspnet/html/asp02182004.asp.asp

- Skinning EngineSkinning Engine 6/4/2004 – DNN 2.16/4/2004 – DNN 2.1

- Providers for Scheduler/Logging/RichTextProviders for Scheduler/Logging/RichText- Crucial bug fixesCrucial bug fixes

Page 9: Introduction to DotNetNuke

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.?)Search (2.?)- Client API (2.?)Client API (2.?)- www.dotnetnuke.comwww.dotnetnuke.com (roadmap) (roadmap)

Page 10: Introduction to DotNetNuke

More Features!More Features!

Page 11: Introduction to DotNetNuke

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 12: Introduction to DotNetNuke

Portal ArchitecturePortal Architecture

1 Installation (1DB/Web)

Host

lenders.yourcompany.com

dealers.yourcompany.com

buyers.yourcompany.com

Page 13: Introduction to DotNetNuke

Core ExtensibilityCore Extensibility

Page 14: Introduction to DotNetNuke

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 15: Introduction to DotNetNuke

Portal Architecture for Data Portal Architecture for Data AccessAccess

Abstract Base Class

ConfigAccessDataProvider

SqlDataProvider

OracleDataProvider

Page 16: Introduction to DotNetNuke

Provider Pattern Provider Pattern EverywhereEverywhere

Data ProviderData Provider Rich Text ProviderRich Text Provider Logging ProviderLogging Provider Scheduler ProviderScheduler Provider Authentication (Soon?)Authentication (Soon?) Everywhere customization *may* Everywhere customization *may*

occur!occur!

Page 17: Introduction to DotNetNuke

SkinningSkinning

Page 18: Introduction to DotNetNuke

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 19: Introduction to DotNetNuke

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 20: Introduction to DotNetNuke

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])

You can write your own You can write your own Skin Objects! Skin Objects!

Replace

Mark Dynamic Section in Skin

with special PlaceHolders

(Designer)

Page 21: Introduction to DotNetNuke

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 22: Introduction to DotNetNuke

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 23: Introduction to DotNetNuke

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 24: Introduction to DotNetNuke

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.xd.com.au, http://www.xd.com.au, http://www.snowcovered.comhttp://www.snowcovered.com ) )

Page 25: Introduction to DotNetNuke

Module Module DevelopmentDevelopment

Page 26: Introduction to DotNetNuke

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 27: Introduction to DotNetNuke

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 28: Introduction to DotNetNuke

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 29: Introduction to DotNetNuke

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 30: Introduction to DotNetNuke

PackPack

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

Package into Zip FilePackage into Zip File Distribute Distribute

Pack

Package Module for Installation(Developer)

Page 31: Introduction to DotNetNuke

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 32: Introduction to DotNetNuke

More InformationMore Information Module Developers Guide (/Documentation)Module Developers Guide (/Documentation) www.solpart.com www.solpart.com

(Menu Updates, Menu Module, and Skins)(Menu Updates, Menu Module, and Skins)

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

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

www.dnnjungle.comwww.dnnjungle.com (Tutorials/VS.NET Enterprise Templates)(Tutorials/VS.NET Enterprise Templates)

www.webhost4life.com / www.webhost4life.com / www.pureportals.comwww.pureportals.com(DotNetNuke hosting / Free DotNetNuke Portals)(DotNetNuke hosting / Free DotNetNuke Portals)

Page 33: Introduction to DotNetNuke

ConclusionConclusion

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

Extensible through Provider PatternExtensible through Provider Pattern Customizable through Skinning & Customizable through Skinning &

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

the right price!the right price!

Page 34: Introduction to DotNetNuke

Questions?Questions?

Page 35: Introduction to DotNetNuke

www.DotNetNuke.comwww.DotNetNuke.comSpecial Thanks to:

Scott McCullochDotNetNuke Core Team

www.smcculloch.net [email protected]

Jon HenningDotNetNuke Core Team

www.solpart.com [email protected]