32
Patrick J. Santry Microsoft ASP.NET MVP wwwCoder.com

Patrick J. Santry Microsoft ASP.NET MVP

Embed Size (px)

Citation preview

Page 1: Patrick J. Santry Microsoft ASP.NET MVP

Patrick J. SantryMicrosoft ASP.NET MVP

wwwCoder.com

Page 2: Patrick J. Santry Microsoft ASP.NET MVP

DotNetNuke Overview◦ Features

Module Development◦ What are Modules?

Skinning◦ Containers

Resources

Page 3: Patrick J. Santry Microsoft ASP.NET MVP

Started by Shaun Walker of Perpetual Motion Interactive Systems Inc. in Jan. 2002 as an extension to IBuySpy, initially called IBuySpy Workshop.

Consists of developers from various backgrounds. Large community support, ASP.NET forums. Written in VB.NET Open Source license. BSD Over 400,000 registered users and growing. More than a starter kit, thousands of professional

implementations worldwide.

Page 4: Patrick J. Santry Microsoft ASP.NET MVP

Multi portal implementation Role based security Skinning, provides flexibility of design. Content is editable in-line and searchable

(full text). Various tools provided – traffic log

reporting, file management, bulk email, payment handling, vendor management.

Friendly URLs, SEO Comes with several modules built into the

core. Hundreds of third party modules are available (free and commercial)

Page 5: Patrick J. Santry Microsoft ASP.NET MVP

What are Modules Desktop Modules Relation to DNN Architecture

Page 6: Patrick J. Santry Microsoft ASP.NET MVP

Provides a developer with a means of extending DNN.

Third party modules can purchased for out of the box solutions.

Core modules are included in DNN for basic functionality.

Page 7: Patrick J. Santry Microsoft ASP.NET MVP
Page 8: Patrick J. Santry Microsoft ASP.NET MVP

Provide a basic look and feel via Containers Contain administrative features

◦ Security◦ Meta data◦ Positioning◦ Syndication

Page 9: Patrick J. Santry Microsoft ASP.NET MVP

Architecture◦ Data Provider◦ Data Abstraction◦ Business Logic Layer

New Interfaces◦ Personalization◦ Scheduler◦ Logging Provider◦ Importing / Exporting◦ Searching◦ Text Editor Provider

DNN User Controls Other items

Page 10: Patrick J. Santry Microsoft ASP.NET MVP
Page 11: Patrick J. Santry Microsoft ASP.NET MVP

Provides abstraction layer to physical provider

Reduces need for recompiling in order to switch physical providers.

Separates physical providers from business logic

DNN Providers◦ Security and Membership Provider◦ Text/HTML Provider◦ Logging Provider◦ Scheduler◦ Friendly URLs

Page 12: Patrick J. Santry Microsoft ASP.NET MVP

Each provider will contain unique logic for dealing with each physical database.

Compiled into its own assembly for “plug and play” use.

(For SQL) Contains methods corresponding to stored procedures.

Defined in the Web.config

Page 13: Patrick J. Santry Microsoft ASP.NET MVP

Contains overridable methods for doing database operations

Located within the module’s project, compiled into the same assembly as the module.

Page 14: Patrick J. Santry Microsoft ASP.NET MVP

Divided into two classes:◦ ModuleInfo: Contains the properties for our object.◦ ModuleController: Contains wrapper methods for

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

Page 15: Patrick J. Santry Microsoft ASP.NET MVP

User controls (ascx) Inherits the PortalModuleBase: provides

values for Settings hash, ModuleID, security, TabID

Binds the objects from the controller class to our controls.

Utilizes DNN user controls This is your module (refer to DesktopModule) Create an admin control (for populating

settings, and view control for viewing data)

Page 16: Patrick J. Santry Microsoft ASP.NET MVP

Provided by the DotNetNuke.Services.Personalization interface.

Allows developer to store unique values for each user

Provides both read and write of personalization values and keys.

Page 17: Patrick J. Santry Microsoft ASP.NET MVP

Provided by DotNetNuke.Services.Scheduling

Provides a means of running a process outside of the user request (batch jobs).

Page 18: Patrick J. Santry Microsoft ASP.NET MVP

Provided by Log.EventLog.EventLogController

Provides the ability to write to the DNN log located under the admin menu.

Similar to the Windows event log, will log code errors, informational (developer), etc.

Page 19: Patrick J. Santry Microsoft ASP.NET MVP

Provided by DotNetNuke.Entities.Modules.IPortable

Allows the developer to provide a means of exporting data from within a module so it can be inserted into another instance of that module.

Must generate an XML file that is used in the export and import process.

Page 20: Patrick J. Santry Microsoft ASP.NET MVP

DNN provides it’s own indexing mechanism for content.

Developer can define content to be indexed in DNN’s catalog.

Will need to implement DotNetNuke.Services.Search.ISearchable in your class.

Page 21: Patrick J. Santry Microsoft ASP.NET MVP

Default is FreeTextBox Can be freely exchanged with another

provider (via the web.config)

Page 22: Patrick J. Santry Microsoft ASP.NET MVP

Address – This control provides the address entry control that you see in DNN when registering for an account within the portal.

DesktopModuleTitle – Provides the title area above a module. DesktopPortalBanner – The banner ad area within the portal, includes the

login, banner ad, logo, and other items. DesktopPortalFooter – The footer control for a portal. DualListControl – A control containing two list controls for moving data

between the two. Help – Help control for a module. Accepts localization information, and help

file references. LabelControl – Contains properties for storing localization information, help

information, and other information provided the DNN core. ListItemComparer – Used to compare items within a list. ModuleAuditControl – For auditing a module, such as who created the

module and when the module was created. SectionHeadControl – For creating collapsible areas within your module. TextEditor – Discussed previously UrlControl – Provides NavigateURL, friendly URLs, etc. URLTrackingControl – For click tracking.

Page 23: Patrick J. Santry Microsoft ASP.NET MVP

Easy distribution and install of modules via a package which contains a definition file, assemblies, ascx controls, content files, and data provider (for database creation).

Starter Kits Available for DotNetNuke installs, Modules, and Skins.

Page 24: Patrick J. Santry Microsoft ASP.NET MVP
Page 25: Patrick J. Santry Microsoft ASP.NET MVP

Separate look from content Multiple skins per portal. Each page can

have unique skin. Can be created using designer tools:

Expression Web Contains HTML, CSS, Images Easily Distributed via Zip Files Skins can be assigned at the host or site

level.

Page 26: Patrick J. Santry Microsoft ASP.NET MVP

HTML File Containing Directives XML File Containing Properties for Controls Associated Files: CSS, Images, etc.

Page 27: Patrick J. Santry Microsoft ASP.NET MVP

<TABLE class="pagemaster" border="0" cellspacing="0" cellpadding="0">

<TR>

<TD valign="top">

<TABLE class="skinmaster" width="770" border="0" align="center" cellspacing="0" cellpadding="0">

<TR>

<TD id="ControlPanel" runat="server" class="contentpane" valign="top" align="center"></TD>

</TR>

<TR>

<TD valign="top">

<TABLE class="skinheader" cellSpacing="0" cellPadding="3" width="100%" border="0">

<TR>

<TD vAlign="middle" align="left">[LOGO]</TD>

<TD vAlign="middle" align="right">[BANNER]</TD>

</TR>

</TABLE>

Page 28: Patrick J. Santry Microsoft ASP.NET MVP

<Objects><Object>

<Token>[BREADCRUMB]</Token><Settings>

<Setting><Name>Separator</Name><Value><!

[CDATA[&nbsp;&raquo;&nbsp;]]></Value></Setting><Setting>

<Name>RootLevel</Name><Value>0</Value>

</Setting></Settings>

</Object>

Page 29: Patrick J. Santry Microsoft ASP.NET MVP

Once the skin files are uploaded they generate an ASCX file for the final skin.

You can create ASCX files directly, zip, upload and install.

Page 30: Patrick J. Santry Microsoft ASP.NET MVP

Similar to skinning, separates look from function

Surrounds the module Create the same as a skin:

◦ HTML with directives◦ XML file for object properties◦ Associated files

Once uploaded, DNN will parse into an ASCX file.

Can use ASCX files directly

Page 31: Patrick J. Santry Microsoft ASP.NET MVP

DotNetNuke.com – The official DNN site. SnowCovered.com – Third party modules. WWWCoder.com – DNN news, articles, and

resources. Documentation at DotNetNuke.com

Page 32: Patrick J. Santry Microsoft ASP.NET MVP