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.

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.


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 (268)
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?