DotNetNuke advocates simple principles, simple in different areas of application have different interpretations, in DotNetNuke, our goal is to make a complex skin system has a human performance-the use and management of simple and convenient. In addition, performance is a key issue for any Web application, so we have emphasized this many times in this standard. The good news is the superior performance and simplicity of the DotNetNuke skin system, which has been proven in some cases.
On the underlying technology, ASP. NET user control is significantly superior to template management. Because user controls are compiled, this is significantly higher in performance than in interpreted languages. It is also a key feature to extract the representation layer from the business logic of background coding.
To make skin creation as simple and flexible as possible for web designers, we decided to use pure HTML to define the skin. The advantage of this is that designers can use the tools they are accustomed to creating and maintaining skin. We've defined some placeholders to isolate skin objects from static tags, and designers can insert them into their skins when the design is complete. A placeholder is a simple text like [TOKEN], which corresponds to a one by one of the skin object. To mitigate the loss of performance during the replacement process, we have established a simple skin-uploading mechanism for this substitution to generate user controls that can be represented directly by DotNetNuke. This preprocessing is performed only once during the skin upload process. This approach allows us to enjoy the performance advantages of user controls and to meet the needs of Web designers and web developers to develop independently.
In terms of layout, DotNetNuke allows skin designers to freely organize the page layouts they want. To insert a content module into a page, the designer can create any number of content columns that can place the module. This free approach provides flexibility in interface design, but also adds some complexity to the seamless integration of Plug and play skin systems. In order to achieve true Plug and play, each skin's layout, name, content bar number must be coordinated.
A weakness in most skin solutions is that the skin component always defines his own layout and appearance. In DotNetNuke, the content module presents a powerful challenge to this system, with complex content modules and a large number of functions to express a single control, so that the control contains at least part of the layout characteristics. This strictly limits his use and must depend on the specified area of the skin (for example, he can only be inserted into a large skin column). What's worse is that if a content module contains static text, colors, pictures, or styles, this limits his role in the skin solution.