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.


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.


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Daniels (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)
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