Thanks for the code. I implemented your forum priority functions so that now I too have Stickys and Announcements.
I must be a genius. I started this thread with the idea of upgrading the Beer House forum to make it more competitive with vBulletin and/or Community Server. I have succeeded beyond my expectations. The basic Marco functionality plus the brilliant Jimi additions and my own few modest cosmetic improvements have yielded an excellent "little" forum.
The Marco/Jimi forum now should be good enough for most web sites except those that are truly forum sites.
Yes I'm clearly a genius. I'm pondering my next trick.
TBH forum differs from most others in that it doesn't have much of a separate administrative dash board. The big commercial forum software advertise that their products have a very comprehensive dashboard. That's how one did it five years ago. Indeed that's how I did with my own forum variant back then. Today however with .NET 2.0 we have role based security built in. This allows TBH forum to have only one set of pages with a couple different sets of of controls whose visibility is role dependent. At first I found this approach odd, but now I've come to appreciate it.
TBH forum in the book is ugly. The forum follows few of the design conventions used throughout the web. Forum devotees will hardly even recognize the stock forum as a forum at all. Fortunately that's an easy modification. Drop the pictures and just have a forum page that looks like a grid.
Jimi's addition of priorities to the Post table are real improvements. Virtually every other forum on the web (including this one from WROX) has Stickys. This is an upgrade without tradeoffs. I'm less comfortable with Jimi's addition of new fields to the Forum table. He adds a couple new fields that hold summary counts from the Post table. These values can be retrieved from the Post table dynamically. This may or may not impose a performance penalty. I think the simpler approach may be more appropriate for a design aimed at "little" forums.
TBH forum has no thread table. It has only a Forum table and a Post table. A thread is defined implicitly by the ParentPostID field with a value of zero. This structure is more like the database structure of a blog than a threaded forum. That's good because blog-like forums (flat unthreaded) are now the most popular kind. Indeed the ShowThread page has a Quote button. Quoting is a feature of blogs and unthreaded forums. It is not needed very much with a threaded forum where every response is to a previous posting.
TBH forum also supports avatars but rather crudely. The user is asked for a URL. The stock Beer House file structure has a folder for avatars and a folder for a user's uploads but the stock EditProfile page doesn't explain that. For some forum topics this is easy to remedy with a collection of stock images. For example, on my opera themed site I have a couple dozen opera cartoons and opera singer photos. Its easy then to add a drop down so the user can add a picture as his avatar. This wouldn't work very well with more general topics. TBH also has a nice little user control that uploads files to a known location. This can be included in the EditProfile acsx with some explanatory text. Then anyone can have any avatar they want.
In summary I think that with the addition of Stickys and some other improvements the Beer House forum is sufficient. The only serious omission now is search and that isn't very hard. If I were developing a pure forum site I would use Community Server. If I were developing a general site that needed a supplementary forum, I would just plug in the Beer House (enhanced) forum.