Topic: Design Goals Suggestions -> make it easy to integrate
I don't have a lot of time right now but I wanted to start this thread and see if it get some user attention or perhaps some attention in general from the team writing punbb.net.
I will suggest that most people looking for .net based forums are likely to be developers or at least semi-developers. As well, there may be hosting sites that will install forums for their clients. And equally likely, developers will want to do some customization and integrate the forums into their existing web site that may or may not already have users, roles, etc.
So why not write these forums from that perspective. It would be something more or less unique in the opensource and commercial market place as well and as a great way to promote the PunBB "The Integratable Forum" (is integratable even a word? ). Doing it would take more attention to architecture, but shouldn't be a major design contraint (well maybe ).
I've done integration with YAF. It is possible but it is hard to learn and hard to customize. I won't say anything bad about YAF because it was never written from the perspective (although partially) of being used as anything more than stand alone forums (IMHO). As such, their code base is very specifically organized around the needs of 'however they wanted to organize their forums' making it complex to learn and equally complex to modify.
I would suggest something like the following:
Put PunBB in its own directory, in both the app_code and the aspx pages. It only needs to be done once and would save other developers a ton of time.
Make the profile, role providers, etc, so they can be inherited by an existing site's providers and still work. (YAF does this with the profile provider). For example if the profile inherets from profilebase, an existing project can inheret from the PunBB profile provider thereby adding to the existing site's custom provider without breaking anything.
Separate the asp.net roles from the PunBB security roles, so that any role can be assigned a security level in PunBB. For example, I could assign "administrator" in PunBB to any role from asp.net that I choose.
Use a Business Logic Layer / MVC type of architecture. If I want to customize functionality (or hide functionality), I should be able to write my own UI, and make calls to the PunBB BLL objects. From this same perspective.. try to keep the UI separated from the business logic.
Be able to turn on/off the site login, with the ability to (in webconfig?) specify a redirection URL for login. This would allow an existing site to make use of its own login/logout functionality.
Allow the forum to be a big 'user control' for embedding in a master page. Something so that it doesn't look/feel like "okay you are now in a totally separate program".
Okay.. I'll stop at this point . I don't want to waste a lot of time presenting this idea if no one is interested. If there is interest I'll try to put together some more solid ideas.