dnfBB

SourceForge.net Logo
 Home   News | Design | Download | Forum | Documentation

This document briefly describes different aspects of dnfBB.

  • Task Based Security
  • 3 Tier Architecture
          Data Access Layer
          Business Object Layer
          Presentation Layer
  • Multiple Forums"
  •  

    Task Based Security

    dnfBB Uses a Task Based security model, this flexible model allows the system to define tasks that user can perform, this can be anything from view a forum to ban users.

    Overview of Task Based System

    As can be seen, this model allows for maximum flexibility when designing your forum, you can have multiple user groups, each group can have 1..N users assigned. Each group can have its own tasks, this gives fine grain control to forum administrators, for instance you could have 1 forum that is moderated by a user that is not a member of the System Defined Moderator Group, for this you could set up a new user group which has all the necessary tasks to enable the user to moderate the forum, this user group can then be assigned to the forum along with a standard user group. The users from the standard group can then perform the tasks allocated, i.e. post, view, reply, and the user(s) within the new moderator group can moderate that individual forum.

    Another example could be a forum that is only visible to certain members. The user group for normal forum members will not be assigned to the specified forum, a new user group can then be created and assigned to the special forum, users that are allowed access will then be assigned to the new user group, which will automatically give them access to the special forum.

    As new features are added to dnfBB, they will be allocated a unique Task ID, the task ID's fall into the following category:

  • Administrator Tasks. Task IDs > 3000000
  • Moderator Tasks. Task IDs > 2000000
  • User Tasks. Task IDs > 1000000

    Forum administrators are free to allocate any/all tasks to any user group with the exception of Administrator tasks which can not be added to any group save the System Defined Administrator Group.

    Back To Top

  •  
     

    3 Tier Architecture

    dnfBB Uses a 3 tier Architecture. The data access layer is only accessible to the Business Object Layer, which in turn is available to the Presentation Layer. This clear abstraction between the interfaces allows dnfBB to ring fence the different layers, provide maximum security, whilst allowing developer(s) to easily enahance areas without the need to regression test the entire system.

    Back To Top

     
     

    Data Access Layer

    The Data Access layer is split into three parts:

  • Abstract Database Class. At the base of the DAL is an abstract base class which is used when creating an interface to seperate DB providers (Firebird, MySQL etc).
  • Firebird Database Class. The Firebird Database Class inherits and implements the functionality necessary for dnfBB to interact with the Firebird. Currently all access is done via Stored Procedures.
  • DAL Helper Class. This class instantiates an instance of the Database Class, the database used and its connection string is taken directly from an XML configuration file.
  • By providing an abstract database class, dnfBB can, in future releases provide support for Multiple Databases. At this time, I have no plans to convert the database myself, however, if you would like to provide support for another database please get in touch.

    Back To Top

     
     

    Business Object Layer

    Back To Top The business object layer is used by the presentation layer, there are numerous classes which interact with each element of the forum.

    By using a BOL, greater flexibility is built into dnfBB, each object is encapsulated and includes all the necessary methods, properties and events to manipulate or view the data. This methodology also allows us to ring fence each class and change implementation without affecting the presentation layer.

     
     

    Presentation Layer

    The presentation layer is built using C#, almost all forms are encapsulated within Web User Control, each providing methods, events an properties to a web form.

    The presntation layer does not directly access the Database, nor indeed does it have any knowledge of the underlying database, instead, it uses the BOL to interact. Once agian, this provides maximum flexibility coupled with a Rapid Development Process, allowing dnfBB to evolve without affecting, or needing to regression test the entire system.

    Back To Top

     
     

    Multiple Forums

    From the beginning, dnfBB has been designed to facilitate multiple forum Boards using the same data source. having muliple forum boards in the same database is traditionally done by having seperate tables for each board. dnfBB Uses a different approach, which allows it to take advantage of Stored Procedures within a database, without having to replicate and maintain multiple tables.

    Another advantage to using this approach is for Web Hosts, who can easily install, and provide a forum for the customers without having to manage multiple databases. The BOL and DAL layers are in a seperate class library, which can be registered as a global library under .net, once again this provides easier maintenance for Server Administrators.

    Back To Top