DotNetNuke Module Creation by wuxiangyu


									       Patrick J. Santry
Microsoft ASP.NET MVP
   DotNetNuke Overview
    ◦ Features
   Module Development
    ◦ What are Modules?
   Skinning
    ◦ Containers
   Resources
   Started by Shaun Walker of Perpetual Motion
    Interactive Systems Inc. in Jan. 2002 as an
    extension to IBuySpy, initially called IBuySpy
   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.
   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)
   What are Modules
   Desktop Modules
   Relation to DNN
   Architecture
   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
   Provide a basic look and feel via Containers
   Contain administrative features
    ◦   Security
    ◦   Meta data
    ◦   Positioning
    ◦   Syndication
   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
   Provides abstraction layer to physical
   Reduces need for recompiling in order to
    switch physical providers.
   Separates physical providers from business
   DNN Providers
    ◦   Security and Membership Provider
    ◦   Text/HTML Provider
    ◦   Logging Provider
    ◦   Scheduler
    ◦   Friendly URLs
   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
   Contains overridable methods for doing
    database operations
   Located within the module’s project,
    compiled into the same assembly as the
   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).
   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)
   Provided by the
   Allows developer to store unique values for
    each user
   Provides both read and write of
    personalization values and keys.
   Provided by DotNetNuke.Services.Scheduling
   Provides a means of running a process
    outside of the user request (batch jobs).
   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.
   Provided by
   Allows the developer to provide a means of
    exporting data from within a module so it can
    be inserted into another instance of that
   Must generate an XML file that is used in the
    export and import process.
   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.
   Default is FreeTextBox
   Can be freely exchanged with another
    provider (via the web.config)
   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.
   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.
   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.
   HTML File Containing Directives
   XML File Containing Properties for Controls
   Associated Files: CSS, Images, etc.
<TABLE class="pagemaster" border="0" cellspacing="0" cellpadding="0">
<TD valign="top">
<TABLE class="skinmaster" width="770" border="0" align="center" cellspacing="0"
<TD id="ControlPanel" runat="server" class="contentpane" valign="top"
<TD valign="top">
<TABLE class="skinheader" cellSpacing="0" cellPadding="3" width="100%" border="0">
  <TD vAlign="middle" align="left">[LOGO]</TD>
  <TD vAlign="middle" align="right">[BANNER]</TD>

   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.
   Similar to skinning, separates look from
   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
   Can use ASCX files directly
 – The official DNN site.
 – Third party modules.
 – DNN news, articles, and
   Documentation at

To top