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.
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.
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.
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.
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.
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.
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).
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”).
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.
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).
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.
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.
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 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).
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.
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).
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).
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.