Learn More





DNN Community Blog

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.


One of the things which is hindering the completion of the DNN 2.0 code is implementation of the skinning solution. It is imperative that we deliver a skinning solution to the community in this release but there are a number of complications to consider.

1. The ASP.NET V2 "Whidbey" release contains a number of UI related enhancements which need to be considered for future upgrades. They have a concept known as Master Pages which is NOT a skinning solution - it is a templating solution and works on the premise of a pre-defined page layout ( our free-form skinning is not based on a pre-defined page layout ). They also have a concept known as Themes which is similar to CSS style sheets but allows you to apply a set of display properties to your server controls ( as long as they support the new SkinId property ).

2. The free-form skinning approach requires the isolation of all UI elements. This means the composite desktopportalbanner and desktopportalfooter user controls have been broken into their individual parts so that specific elements can be placed anywhere on the page. The complication here is that the composite user controls must be maintained for legacy purposes - there are custom modules which contain ASPX pages that rely on these controls.

3. The free-form skinning approach also relies on a single ASPX page so that skinning is applied consistently across all user interfaces. This means the functionality of the old EditModule.aspx page has been merged with the DesktopDefault.aspx page. Once again we run into legacy support issues as there are many modules which rely on the existence of EditModule.aspx. The best suggestion to deal with this is to include it as a stub page which simply reformats the URL and redirects to the new DesktopDefault.aspx page.

4. Free-form skinning is complicated by user interface elements which are hard-coded. Examples include the current signin.ascx and the admin bar displayed when the administrator logs in. In a perfect solution there should be no hard-coded UI elements; therefore, modifications need to be made to deal with these.

5. There has been a lot of discussion on file system naming conventions - Themes or Skins? The Alpha release of ASP.NET V2 reveals that the Microsoft approach relies on the existence of a Themes folder beneath the application root. And when it comes to individual skins, we have toyed with GUIDs, IDs, and Names. ASP.NET V2 uses a unique skin name for the directories beneath the Themes folder. This eliminates the dependency on a database which means you are free to upload your skin file outside the application ( ie. via FTP ). However it also exposes the potential for naming conflicts.

6. A further item also relates to the physical organization of skin files. In DotNetNuke we have multiple portals. Each portal administrator will need the ability to manage the skins for their own portal. Therefore it would seem that the \Themes folder should be


There are currently no comments, be the first to post one.

Comment Form

Only registered users may post comments.


2sic Daniel Mettler (124)
Aderson Oliveira (15)
Alec Whittington (11)
Alex Shirley (10)
Andrew Nurse (30)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (21)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (203)
Chris Paterra (55)
Clinton Patterson (28)
Cuong Dang (21)
Daniel Bartholomew (2)
Dave Buckner (2)
David Poindexter (3)
David Rodriguez (2)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (74)
Geoff Barlow (6)
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 (269)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matthias Schlomann (15)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Mike Horton (19)
Mitchel Sellers (28)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Peter Donker (52)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott S (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)
Timo Breumelhof (24)
Tony Henrich (3)
Torsten Weggen (2)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (37)
Will Strohl (163)
William Severance (5)
Try Evoq
For Free
Start Free Trial
a Demo
See Evoq Live
Need More Information?