New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.

Cambrian First Look - New Features Module (Pt 3)

A month or so ago I started a series of blogs about the new Features Module that will be a major focus of the upcoming Cambrian release.  I had intended to publish these blogs on a frequent basis, but a "busy" life got in the way.

Anyway, now I am back "blogging" I intend to continue this series of blogs on the Features Module, by giving an update on some changes, and looking at the other parts of this module.

Features Module Updates

So first off, there have been a few cosmetic changes in the module since my first two posts - designed to make the module look more like the module it replaces "Module Definitions".

So instead of a "TreeView" on the left we have a drop-down box at the top, which is used to choose the type of Feature to display (in this case "Not Specified" displays all the installed features).  If you then select the pencil "edit" icon you will then be redirected to an "Edit Feature" page (for example for the default DNN Authentication Feature)

The top half of this "Edit Page"  depends on the feature type being edited.  In this case we are editing an Authentication System.  The bottom half of the page (which by default is collapsed) shows the common "package" settings for the feature.

This UI paradigm more closely follows the design of other core modules and so it was felt that this was a better approach (pending a more complete overhaul to the admin UI).  At the bottom of the page are three command buttons "Update Feature", Create Feature Package" and "Cancel".  These are fairly straigtforward - "Update Feature" is used to save changes, "Create Feature Package" is used by a Feature developer to "package" their Feature ready for distribution, and Cancel is used to return to the main List. 

Most of the time their will also be a fourth command button "Uninstall Feature" which is used to Uninstall (or delete) a feature.  In this case the "button" is suppressed as the basic DNN Authentication System is considered a "System" feature - as the site might not function without it.

Create Feature Package Wizard

The Features Module allows developers to create packages for distibuting their Features.  The old Module Definitions Module and the old Languages Module had these features but in our new "Universal" system where all extensions are types of  "Features", this packaging is now available to all Feature types.  Clicking on the "Create Feature Package" command button launches the new "Create Package Wizard". In this example, I am using the "Links" module.  The first page displays the information about the Feature

The next page display a list of files.  The "folder" chosen depends on the feature type and for some features is a best guess at which folder to use.  However, you can edit the folder field and click the "Refresh Fil List" command button to update the lower display

The list shows ALL the files in the folder selected (as well as the files in child folders).  In this case you can see that my "Links" module folder contains addition language files (for the dutch and turkish languages) as I had been working on some Localization issues.  I don't want these files in my package so I can simply "remove" these files from the list.

Next the Wizard displays a list of "assemblies" to include.  Again, as with the files list, the Wizard makes a best guess attempt at determining which assemblies to include - for example by using the project file.  But as with the files list you can add, edit or delete assemblies in the list.

On the enxte page the Wizard asks if you are just generating a manifest or whether you want to create a zip package, and prompts you for the file names.

Finally the last page of the Wizard provides a "Report" of the packaging operation.

Uninstall Feature Wizard

To uninstall a feature you can select the red cross "Delete" button in the list or you can select the "Uninstall Feature" command button in the Edit Page - either way the operation is only available if the Feature is not "flagged" as a System Feature.  Using the Links modules as an example again, selecting "delete" or "uninstall" will start the "Uninstall Feature Wizard".  The first page again displays information about the Feature (just to ensure you know which feature you have chosen to delete).  To uninstall the feature you will need to click the "Uninstall Feature" command button.  Notice that in this case as we are requiring you to select Delete/Uninstall twice there is no "alert" pop-up for you to confirm your choice.  As with the old Module Definitions module you can choose to optionally delete all the files associated with the Feature OR to just "unregister" the Feature.

Once you click the Uninstall button, you will get a report of the uninstall.  In this case (see below) there was a failure caused by an issue with Uninstall SQL Script.

This shouldn't have happened - but it does serve as a demonstration.  Unlike the old Module delete function we do now attempt to give you a full report of what happened.

This blog has been pretty long, but I hope you will have been able to get a sense of the potential power of this new system.  In my next Blog I will start describing how the new Installer/Uninstaller works and how developers can start to adopt the new features we have incorporated into the system.







Comment Form

Only registered users may post comments.


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Davies (3)
Alex Shirley (10)
Andrew Hoefling (3)
Andrew Nurse (30)
Andy Tryba (1)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (37)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Bogdan Litescu (1)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (213)
Chris Paterra (55)
Clint Patterson (108)
Cuong Dang (21)
Daniel Bartholomew (2)
Daniel Mettler (181)
Daniel Valadas (48)
Dave Buckner (2)
David Poindexter (12)
David Rodriguez (3)
Dennis Shiao (1)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (80)
Francisco Perez Andres (17)
Geoff Barlow (12)
George Alatrash (12)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (274)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Kelly Ford (4)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matt Rutledge (2)
Matthias Schlomann (16)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Miguel Gatmaytan (3)
Mike Horton (19)
Mitchel Sellers (40)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Oliver Hine (1)
Patricio F. Salinas (1)
Patrick Ryan (1)
Peter Donker (54)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Sacha Trauwaen (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott Schlesier (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Steven Fisher (1)
Timo Breumelhof (24)
Tony Henrich (3)
Torsten Weggen (3)
Tycho de Waard (4)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (40)
Will Strohl (180)
William Severance (5)
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out