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.

Forum n-Tier architecture

I approved a forum post by Bill so I decided to blog about his question.  I thought this might be useful to those who read my blog. 

As many of you may already know, this module actually was spawned from a CodeProject sample.  There is almost nothing left from this except a few basic architectual elements and how these UI's are done is one.  The module has undergone many transitions to get to where it is today.  We have been looking into how we should properly handle the theme/skinning so this piece has remained this long.  We felt it was more important to have a solid foundation rather than an easily customizable UI.  There is a performance gain for rendering the UI in the code, but we are willing to sacrifice some performance if we can come up with a very good 'skinning' solution.  Also note that the two Search results UI's (portal and forum searches are handled seperately because one is a post view and the other is a thread view plus there are some differences between the incoming querystring parameters) and one of the Moderation UI's are also rendered in this manner (moderation queue). 

Now, to touch on Bill's question about nTier thoughts.  The reality is this module still adheres to this for the most part.  Just because there is no ascx doesn't mean we are not using the nTier approach.  nTier simply means you seperate those tiers logically (I guess Bill does have a point because nTier is not necessarily a specifically numbered tier).  The actual HTML used is the Presentation GUI Tier, but in the case of this module it is being done in the Presentation Logic Tier.  Those two actually combine to make the 4th tier in this module, but would be seperate in a 5 tier approach which is what most of DotNetNuke uses.  In this 4 Tier, we render the html server side then send that rendered html to the client.  In the 5 Tier approach, the HTML would be read from the ascx file on disk, then sent to the client. 

To sum all this up with the most honest answer I can give: this is currently done like this because it worked the way it was and before replacing it, we needed to find an easily customizable solution that didn't really impact performance.  We didn't want to spend time working on only a temp solution.  If you live in an area where it snow's, think of it like filling a pothole in the winter until summer comes and you can repave the entire road.


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 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