借助于这一架构,我可以通过一系列抽象基类来定义系统的功能,并使用SQL Server 2000和Users表来提供这些类的具体实现。满足这一配置的客户可以只管使用该应用程序,并且一切将工作良好,且不需要他们编写一行代码。然而,那些需要定制的开发者们可以通过创建他们自己的派生自适当的抽象基类的类来实现。通过简单地把该程序集放到应用程序的/bin目录并更新Web.config文件,他们可以让系统使用这个新类。具体地说,WebForums.NET发行中带有一个抽象基类DataProvider,它清楚地列举出了系统中的所有方法,类似如下:
public abstract class DataProvider
{
public abstract bool AuthenticateUser(string username,string password);
public abstract User GetUserInfo(string username);
...
public static DataProvider Instance()
{
...
}
}
WebForums.NET发行中还带有一个派生自DataProvider基类的SqlDataProvider类,这个类提供分类方法的具体实现。例如,SqlDataProvider的所有方法都可以操作存储于一个SQL Server 2000数据库中的数据;与用户相关的方法可以与一个预定义的Users数据库表一起工作。一个想改变后端功能的客户可以创建他自己的派生自DataProvider的类,这些信息都可以展示于Web.config文件中(指明应该使用他们的定制类)。例如,WebForums.NET中的Web.config可能包括下列内容: