Journal Entries

05 May 2008

When I worked on a project for one of my clients a while back, I had to come up with a mechanism that allows user to switch layout design within a site. Not familiar with any programming language, I sought help from a bright colleague, Brian Dukes. With Dukes’ elite programming skills, he helped me to create a CssSelector (SkinObject in DotNetNuke) in just a few minutes to solve the issue.

The skin object works great as a tool to enhance user experience on your site and I'd like to share with professionals who are working with DotNetNuke.

07 May 2008

Skinning has been one of the most challenging topics in DotNetNuke development. The community has created a fairly versatile skinning engine for non-developers to adapt; however, to achieve perfection or superiority in DotNetNuke skinning requires tremendous amount of time as well as being detail-oriented.

There are a few reasons that skinning has become cumbersome to master:

  1. Lack of resources (majority of resources including books and documentations are developer-oriented, it's difficult for non-developers to learn and comprehend the concepts).
  2. Although [TOKENS] makes skinning easier, the framework has poor user experience in demonstrating the skinning process.
  3. Lack of flexibility for web standards approach.
28 Jun 2008

I’ve seen many developer created websites and skins with very similar mistakes lately. They all lack of knowledge about principles in web design. In my post about the truth of DotNetNuke Skinning, I mentioned that skinning is not a skill; it takes a bit of knowledge and understanding of the DotNetNuke framework as well as aesthetic design. Many seems to master the first part, however, they all missed the second. By learning how to use Photoshop doesn’t make one becomes a graphic designer.

To assist with future skinning approach, here are the five principles of building a DotNetNuke site or to design a skin. These principles are of course extended to web design and development in general, but the lack of implementation in DotNetNuke community intrigued me to put them together. I hope you all enjoy!