1 / 32

DotNetNuke 4

DotNetNuke 4. Patrick J. Santry Microsoft ASP.NET MVP wwwCoder.com. DotNetNuke. DotNetNuke Overview Features Module Development What are Modules? Skinning Containers Resources. DotNetNuke Overview.

bary
Download Presentation

DotNetNuke 4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DotNetNuke 4 Patrick J. Santry Microsoft ASP.NET MVP wwwCoder.com

  2. DotNetNuke • DotNetNuke Overview • Features • Module Development • What are Modules? • Skinning • Containers • Resources

  3. DotNetNuke Overview • 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.

  4. Features • 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)

  5. Modules • What are Modules • Desktop Modules • Relation to DNN • Architecture

  6. What are Modules? • 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.

  7. Module Example – Text /HTML

  8. Desktop Modules • Provide a basic look and feel via Containers • Contain administrative features • Security • Meta data • Positioning • Syndication

  9. Module Development • 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

  10. Module Architecture

  11. Provider Model • 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

  12. Physical Providers • 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

  13. Abstraction Layer • Contains overridable methods for doing database operations • Located within the module’s project, compiled into the same assembly as the module.

  14. Business Logic Layer • 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).

  15. Presentation Layer • 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)

  16. Personalization • 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.

  17. Scheduler • Provided by DotNetNuke.Services.Scheduling • Provides a means of running a process outside of the user request (batch jobs).

  18. Logging Provider • 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.

  19. Import / Export • 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.

  20. Searching • 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.

  21. Text Editor Provider • Default is FreeTextBox • Can be freely exchanged with another provider (via the web.config)

  22. DNN User Controls • 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.

  23. Items of Note • 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.

  24. Skinning

  25. Skinning • 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.

  26. Parts of a Skin • HTML File Containing Directives • XML File Containing Properties for Controls • Associated Files: CSS, Images, etc.

  27. HTML Example <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>

  28. XML Definition <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>

  29. Generates an ASCX Files • 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.

  30. Containers • 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

  31. Resources • DotNetNuke.com – The official DNN site. • SnowCovered.com – Third party modules. • WWWCoder.com – DNN news, articles, and resources. • Documentation at DotNetNuke.com

  32. www.DotNetNuke.com

More Related