The DotNetNuke 6 Developer Quick Start page is intended to be used as a resource that can help get DotNetNuke extension developers up to speed on the latest offerings available in 6.0. If you are new to Skin Object, Module or Provider development in DotNetNuke, you may wish to visit the
Module Development page for further details.
Azure Compatible
All editions of DotNetNuke 6 are Azure compatible. However, additional work is required to install.
Azure SQL Script Compatibility Concerns When Developing:
- Column alias – Select ‘xx’ = colA is not allowed, instead: Select colA AS ‘xx’
- Create Table… - ON PRIMARY is not allowed as there is no concept of file groups
- Every table needs a clustered index.
- Keywords deprecated: NOT FOR REPLICATION, PAD_INDEX = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, NOT FOR REPLICATION, ROWGUIDCOL.
Resources:
Control Panel
The 'Ribbon Bar' control panel that was included with DotNetNuke 5.x versions has been heavily updated.
Please see the DDR Menu section for details on styling the DDR menu.
CSS: Important Notes
The default.css file contains very significant style definitions for the new user interface. The core form patterns and the associated jQuery plugins all depend on default.css for style.
DotNetNuke 6 also uses a jQuery UI theme. In order to use multiple jQuery UI themes on one website, each theme needs to take into account CSS Scope. In general, this means that each theme will only target specific elements - and there are no "global" themes used. This avoids competition between themes.
Please read the following article for more information:
Using Multiple jQuery UI Themes on a Single Page.
Additional Resources:
DDR Menu
The DDR Menu, as of DotNetNuke 6, is the default menu provider that ships with the framework. Existing installs will not be automatically upgraded to this menu, though.
Resources:
DotNetNuke Extension Feed
The DotNetNuke Extension Feed is new functionality for DotNetNuke 6.0. To break it down, the Extension Feed is an enhancement to the "Extensions" module that provides Super Users a centralized point to search extensions located in
Snowcovered (The DotNetNuke Store) and the
Extension Forge. After users find an extension using the search interface, they can also use the same module to download and deploy in their install.
Resources:
DST Support (Enhanced Time Zone)
As of DotNetNuke 6.0, Daylight Savings Time support has been added to the core framework.
Existing API Updates:
- DotNetNuke.Entities.Users.UserProfile.TimeZone property is marked as Obsolete.
- Replaced by DotNetNuke.Entities.Users.UserProfile.PreferredTimeZone property
- DotNetNuke.Entities.Portals.PortalSettings.TimeZoneOffset property is marked as Obsolete.
- Replaced by DotNetNuke.Entities.Portals.PortalSettings.TimeZone property
Two brand new APIs have been introduced to obtain current time. These API make a direct query into the database and return timestamp from database. These API will be very useful in a web-farm configuration with multiple web-heads or configurations where web-head and database are deployed on separate servers, perhaps separate time zones.
New API Methods:
- DotNetNuke.Services.SystemDateTime.SystemDateTime.GetCurrentTimeUtc.
- Gets Current Date Time in Utc from database.
- DotNetNuke.Services.SystemDateTime.SystemDateTime.GetCurrentTime.
- Gets Current Date Time from database.
Resources:
Folder Provider API
Two new API classes have been created for file and folder management in DotNetNuke 6: FileManager, FolderManager. These replace the now deprecated FileSystemUtils, FileController and FolderController classes. These APIs have been created on top of a new Provider, the FolderProvider. This new Provider allows to work with different storage locations.
Folder Providers Shipping with 6.0:
- Amazon S3 (Professional Edition)
- Azure (Professional Edition)
- Standard, Secure, Database (Community Edition)
Resources:
Form Pattern
The form pattern refers to the User Interface update that was a big part of DotNetNuke 6.0.
Styling Modal Popups
Modal popups are implemented using the jQuery UI dialog. By default, there is a section in default.css that contains all classes to style this (and other jQuery UI widgets we use) where we basically apply a default theme via CSS. Placement in the default.css allows skin designers to override this in their own skins via skin.css, yet older skins that were not designed for 6.0 will also have the dialog styled so it doesn’t look broken (it may not fit 100% with the site design, though).
z-Index:
- Modal popup: 1000 - up
- Control panel: 950 – 999
- Module actions: 900 – 949
- Everything else (including content): 0 – 899
- Telerik Controls
Resources:
Icon API
In DotNetNuke 6.0, an enhancement was made to use one unified API to access icons in the framework. Simply pass a key (e.g. Add, Edit, or Delete) and get a Url back to an image without worrying about the physical location. It's also worth noting that 6.0 ships with a new set of icons replacing all existing icons in the application (those in 5.x and earlier).
New Icons Folder with Pngs (key points):
- There is a new folder with many Png icons under Website Root\Icons\Sigma folder.
- Icons are named according to their size and style.
- Icons are in .Png format.
- Two (or more) versions of all the icons
- e.g. Add_16X16_Standard.png and Add_32X32_Standard.png for the old Add.gif image.
API Notes:
- 3 (overloaded) static APIs available to obtain Url to an icon.
- Under namespace DotNetNuke.Entities.Icons and called as IconController.IconURL.
- Instead of using .ImageUrl = “~/images/add.gif”, simply use .ImageUrl = IconController.IconURL(“Add”).
The IconKey property for WebControls
Similar to the ResourceKey property for WebControls to facilitate Localization, there is a new IconKey property available to major webcontrols that contain an ImageUrl property.
- asp:Image
- asp:ImageButton
- asp:HyperLink
- asp:HtmlImage
- dnn:CommandButton
- dnn:ImageCommandColumn
- dnn:DnnGridButtonColumn
- dnn:DnnImage
- dnn:DnnImageButton
Resources:
jQuery & jQuery UI
All editions of DotNetNuke are shipping with jQuery and jQuery UI enabled and used throughout all interfaces in the core admin and host modules (as well as the control panel and interfaces in the framework itself).
Resources:
log4net
The log4net assembly
(version 1.2.10) has been added to all editions of the DotNetNuke framework in 6.0.
Log File Details:
- Location: Portals\_default\Logs
- Naming convention: yyyy.MM.dd.log.resources
- Each file is limited to 10MB in size
- Maximum of 5 files (50MB total in size)
Resources:
Manifest Updates
There was technically 1 addition to the manifest file in DotNetNuke 6, the iconFile node. Another node, supportsPopUps was made available in DotNetNuke 5.6.x but due to a bug it was not usable by extension developers.
Resources:
- How Will You Brand Your Extensions?
- This blog article shows example usage of the iconFile node from the manifest.
- For me details about the iconFile node, please see the "Module Branding" section of this page.
- The .dnn6 Manifest File
- Blog article discussing the option of using a .dnn6 specific manifest file for 5.x compatible modules.
- Modal Popups in DotNetNuke 6.0 Extensions
- Discusses how to implement modal popups in extensions, as well as styling them.
- For further details on supportsPopUps node, please see the "Modal Popups" section of this page.
Modal Popups
Support for modal popups has been added to DotNetNuke 6. It is a setting that can be enabled or disabled per portal. When enabled, module controls that support this feature can be loaded via a modal popup (which is jQuery UI).
Developers who wish to enable, or disable this feature in their modules should add the
supportsPopUps node for each module control in their DotNetNuke 6 compatible manifest file.
By default all core admin and host modules will have this enabled. Third party and core modules that have not yet specified this support for this in their module will have this feature disabled.
Resources:
Module Actions
As of DotNetNuke 6, the module actions menu which was previous exposed to designers (via the container) is no longer displayed. Instead, the framework injects a DDR menu for each module. Please refer to the DDR menu section for further details. The only time this is not the case is when a third party module action replacement menu was used (this was an update not made until Beta 2 for 6.0).
Module Branding
Module branding allows DotNetNuke extension developers (both developers and skin designers) to associate an icon with their extension package. This image is displayed in both the Extensions page, as well as in the module drop down in the control panel (for modules).
Resources:
Module Categorization
Module Categorization allows Host users to categorize their modules so that finding a module in the Control Panel is much easier. Please note, developers cannot 'categorize' their modules. This ability was intentionally left out as the goal of Module Categorization is to allow Super Users to manage the categorization and allowing extension developers to add categories would defeat this goal.
Resources:
New Modules
- Commerce (Professional Edition)
- Page Manager (Community Edition)
- Replaced previous Page Manager module.
- Rad Editor Provider & Configuration Module (Community Edition)
- Replaced previous Telerik HTML Provider.
- SharePoint Connector (Enterprise Edition)
Telerik
DotNetNuke 6 ships with Telerik's 2011 Q1 SP2 release. All controls provided by Telerik (as of the release DotNetNuke is shipping with) now have DotNetNuke equivalent wrappers (All wrappers are part of DotNetNuke.Web project). This update allows module developers to use the full suite of Telerik ASP.NET AJAX controls in their own modules. You can view live demo's of all the available Telerik ASP.NET Ajax controls
here.
A few notes about where the core uses Telerik as of 6:
- Many data grids are using DnnGrid (RadGrid equivalent), all others will eventually be converted to this.
- Replaced the 'dnn calendar' (from Client API) throughout the core user interface, replaced by DnnDatePicker (RadDatePicker equivalent).
- RadAjax (DnnAjaxPanel, DnnAjaxLoadingPanel) is now used for the 'partial rendering' (instead of ASP.NET Ajax).
- RadEditor is used by the new HTML provider (It was also used by the previous one too).
- DnnComboBox (RadComboBox) is used as a replacement for drop downs where there is some type of functionality beyond the normal drop down (The language selector control, for example, which displays a flag image and text).
- RadTreeView (DnnTreeView) – I believe every treeview in the core, besides the file manager, is using this (and already was).
Resources:
Updated Modules & Providers
This section summarizes the modules that were updated in time for the DotNetNuke 6.0 public release. All packages were included with the distribution, unless otherwise noted.
- Blog
- Very minor update to correct problem with constraint dropping (seen in 6).
- Documents
- Bug fixes and enhancements. Details at CodePlex.
- FAQ
- Bug fixes and minor enhancements. Details can be found in this blog.
- Forum
- Very minor update to ensure 6 compatibility (Telerik update & similar constraint problem as blog).
- Gallery
- Bug fixes. Details can be seen at CodePlex.
- This module is not (and has never been) included with any DotNetNuke edition.
- Links
- Enhancements and bug fixes. Details about the release can be found in this blog.
- Media
- Enhancements and bug fixes. Details in this blog.
- News Feeds
- Very minor update to remove legacy connection string usage.
- Reports
- Repository
- Enhancements and bug fixes. Details can be found in this blog.
- Survey
- Bug fixes and enhancements. Details at CodePlex.
- Wiki
- Bug fixes and minor enhancements. Details at CodePlex.
- XML
- Enhancements and bug fixes. Details in this forum post.
One final note here is that DotNetNuke 6.0 is likely the last (or one of the last) releases that will include 'core' modules with the distribution packages.
Other Changes
These are other additions/changes that were made in 6.0 that didn't necessarily merit an entire section of their own (in this Wiki page).
Resources: