然后我们可以创建保存FAQ信息的类了。在下面的图中,FaqInfo类继承自ContentInfo,它可以保存一般内容信息项的大部分属性。每一个模块都会有一个自己的Utility类来读取、添加和编辑内容。所以对于FAQ的模块,我们还要创建一个FaqUtility类。
我们还要创建给Code-Behind页面使用的类来显示和编辑FAQ。CSK中是通过SkinnedCommunityControl来使不同页面显示不同的界面。CSK中也包含了其它实现了常用功能的基类可用于增加(ContentAddPage),编辑(ContentEditPage)和显示(ContentItemPage),下面的图中显示了这些类的继承关系
另外,我们还需要创建从WebControl继承的类来显示FAQ的内容。通常,每一个属性显示时放在不同的控件中,并且该控件可以用最适合的风格来显示内容。下面的图中显示了这些最终在这个模块中会使用的控件,它们最终都是从WebControl继承而来。
构建模块的过程我们将采用自底向上底方式,从数据库建立开始,到表现层的界面和主题设置结束。我们将沿用在CSK中已经约定的命名模式,保持与其它模块的风格一致。如,在书的模块中要从Community_Books表中读取信息,那么相应的类就是BookInfo。
这样我们就用一个叫做Community_Faqs的表,对应的类叫做FaqInfo。当然你可能想另外加上唯一标示防止将来的CSK中包含这个模块。例如你在ABC公司工作,那么这个表名可以叫做Community_ABCFaqs来减少将来可能出现的名称冲突。
我们将使用下面的步骤来构建FAQ模块。你可以参照这些步骤构建你自己的模块:
1. 创建一个新的表(Community_FAqs)来保存新模块的附加字段信息,
2