Upload
triggerskiran
View
65
Download
3
Embed Size (px)
Citation preview
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
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
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
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
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
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.
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
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
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
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
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
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
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)
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)
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)
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)
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)
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
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
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).
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
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