DotText源码阅读(2)-工程、数据库表结构

首先,来看整个工程结构,在此间单列出来,其中很多是初次阅读写下的,可能有些理解不正确,需要注意:
一、 解决方案的组成项目
a)        Dottext.Web
引用了:
ActiproSoftware.CodeHighlighter
ActiproSoftware.Shared
Dottext.Common
Dottext.Framework
DotText.Search
Dottext.Web.ServiceAPI
FreeTextBox
MetaBuilders.WebControls.DefaultB
MetaBuilders.WebControls.ExpandingPanel
其他就是常规的 System 下的命名空间 :
 
              注意是用了较多的第三方控件
 
b)        Dottext.Web.ServiceAPI
引用了:
              Dottext.Framework
              Microsoft.Web.Services
              System
              System.Data
              System.Web
              System.Web.Services
              System.Xml
重点看使用了 Dottext.FrameWork 的那些?
 
 
c)        DotText.Search
引用了:
              Dottext.Framework
              Highlighter
              Lucene.Net
              Lucene.Net.Analysis.Cn
              System
              System.Data
              System.Web
              System.Web.Services
              System.Xml
              System.Drawing
              System.Windows.Forms
 
d)        Dottext.Framework
CookComputing.XmlRpc
Lucene.Net
Microsoft.Web.Services
SgmlReaderDll
System
              System.Data
              System.Web
              System.Web.Services
              System.Xml
              System.Drawing
              System.Windows.Forms
              也引用到了第三方控件
 
e)        Dottext.Common
Dottext.Framework
System
              System.Data
              System.Web
              System.Web.Services
              System.Xml
              System.Drawing
              System.Design
 
f)          Dottext.Web.Admin
ActiproSoftware.CodeHighlighter
Dottext.Framework
DotText.Search
FreeTextBox
SkmRss
System
              System.Data
              System.Web
              System.Web.Services
              System.Xml
              System.Drawing
              System.Windows.Forms
引用了 SKMRSS 值得注意
 
二、 Dottext.Framework 分析
采用了以下的目录:
              Components
                     ArchiveCount.cs
                     ArchiveCountCollection.cs              统计文章访问数量的类及收集,注意仅仅是一个实体类,而不是数据库相关类
                     BlogFile.cs
                     BlogFileCollection.cs               同样是实体类
                     BlogUser.cs                                  用户对象 / 实体类
                     BuildTree.cs                          定义一个构造组件树的抽象接口
                     CategoryEntry.cs                     类别实体对象
                     CategoryEntryCollection.cs       类别实体收集
                     CategoryType.cs                            类别的枚举
                     CategoryTree.cs                            实现了组件树的接口
                     Entry.cs                                实现 IblogIdentifier 接口,每一个博客账户的实体类
                     EntryCollection.cs
                     EntryQuery.cs                      反映博客的现状的实体对象 ?
                     EntryRate.cs                               统计信息实体类
                     EntryStatsView.cs                  博客统计类别
                     EntryView.cs                      博客的浏览信息实体
                     EntryViewCollection.cs          博客的浏览信息实体收集
                     IBlogDataProvider.cs                   博客实体类同数据库之间的接口定义
                     IBlogIdentifier.cs                     博客的唯一标示接口
Image.cs         博客相关的图像实体类
                     ImageCollection.cs   
                     IMail.cs                         邮件接口
                     IPagedResults.cs              分页接口?
                     KeyWord.cs                   博客相关的关键字实体类
                     KeyWordCollection.cs
                     Link.cs                           连接实体类
                     LinkCategory.cs              链接的分类实体类
                     LinkCategoryCollection.cs
                     LinkCollection.cs
                     PagedEntryCollection.cs
PagedKeyWordCollection.cs
PagedLinkCollection.cs
PagedReferrerCollection.cs
PagedViewStatCollection.cs
PageType.cs         页类别
PostConfig.cs      发贴选项配置
PostType.cs         信息提交类别,分别有 blog  Article Comment
                     Referrer.cs                     引用实体类
                     ReferrerCollection.cs
                     Role.cs                           配置实体类
                     SkinControl.cs        博客相关的 skin
                     SkinControlCollection.cs
                     Tree.cs                           数据结构树的实现
                     ViewStat.cs                    访问统计实体类
                     ViewStatCollection.cs
              这些实体类,用于博客操纵以及系统交互操纵时候采用 OOP 进行
              Configuration
                     BlogConfig.cs          博客配置类
                     BlogConfigurationSettings.cs            
                     Config.cs                 配置操作相关的静态函数类
                     ConfigurationFlag.cs          枚举类型
                     ExtendedProperties.cs            扩展属性处理类
                     IConfig.cs               配置处理接口
                     SiteBlogConfig.cs      站点配置类
                     SiteBlogConfigCollection.cs
                     SkinConfig.cs          皮肤配置类
                     Tracking.cs                    pingback/trackback 机制配置类
              Data
                     SQLHelper.cs              微软提供的数据库操作类
                     ADOHelper.cs              MS ADO 抽象类
                     DAABSectionHandler.cs
                     DataDTOProvider.cs        DTO 实现类
                     DataHelper.cs          数据库访问处理类
                     IDbProvider.cs        数据库操纵接口
                     IDTOProvider.cs              DTO 接口
                     IProccessEntry.cs      定义一个操作接口 ( 数据库操作的? )
                     SqlDataProvider.cs    Sql server 操作接口实践类
                     SqlServer.cs                  Sql server 的数据库操作类
                     *** 以上各类实现数据层的操纵
              Email
                     IMailProvider.cs              定义 Email 服务商的接口
                     SystemMail.cs              利用系统接口进行 email 发送的类
                     基本上实现了 email 的对外接口
              EntryHandling
                     改目录下为 blog 的操作 handle ,因改属于比较重要的目录
                     有两个目录 :
                            DefaultHanlders  却省操作类
                                   CommentDeliveryHandler.cs    当到达一个评论时候的处理
                                   CommentFormatHandler.cs    对评论进行防攻击处理句柄
                                   EntryValidationHandler.cs       验证一个条目时候的处理句柄
                                   KeyWordHandler.cs                 格式化关键字的处理
TrackBackHandler.cs 处理 TrackBack
WeblogsPingHandler.cs 处理 Ping
WebServicePostHandler.cs ws 接口
                            EntryFilter
                                   IEntryFactory.cs              操纵处理句柄类的类工厂接口
ProcessAction.cs 处理行为枚举类
ProcessState.cs 处理状态 / 情形定义类
HandlerManager.cs 句柄管理类
EntryHanlderQueue.cs 处理队列类
EntryHandler.cs 处理句柄
                     还有如下的 Handle
                                   EntryHandler.cs
                                   EntryHanlderQueue.cs
                                   HandlerManager.cs
                                   IEntryFactory.cs
              Format
                            UrlFormats.cs        组装格式化的 URL
              Logger
                            Log.cs
                            LogManager.cs              日志???
              Providers
                            BaseProvider.cs              提供者基类
                            BlogProviders.cs              Blog 的提供类
              ScheduledEvents
                     Event.cs                  事件实体类,用于调度
                     EventHttpModule.cs        事件处理模块
                     EventManager.cs             事件管理模块
                    
              Syndication
                     BaseAtomWriter.cs ATOM 文档 XML 输出
                     BaseOpmlWriter.cs        Opml 文档管理输出类的基类
                     BaseRssWriter.cs                     RSS 输出类
                     BaseSyndicationHandler.cs       这类处理的句柄
                     BaseSyndicationWriter.cs        基类
                     CachedFeed.cs                     缓存 Feed
                     OpmlWriter.cs               OPML 输出类
              Tracking
                     AggBugHandler.cs           bug 管理类 , Lazy way to include 1x1.gif :)
              EntryTracker.cs                     Tracker
                     PingBackNotificatinProxy.cs             发出 pingback 的类
                     PingBackService.cs          服务类, XMLRpc
                     StatsQueueSchedule.cs        调度队列类,继承自 Dottext.Framework.ScheduledEvents.Ievent
                     TrackBackHandler.cs              处理 trackback
                     TrackBackNotificationProxy.cs 代理类
                     TrackingUrls.cs                     处理像素为 1 的图像 html 生成
                     Verifier.cs                       trackback/pingback 活动中获取标题的工具类
                     WeblogsNotificatinProxy.cs       网志通知代理
 
              Util
                     BinarySerializer.cs             二进制序列化工具类
BlogCache.cs         实现 cache 策略的工具类
BlogRequest.cs         读取一个 Blog 的工具类
BlogTime.cs            处理时间分区、转换的工具类
Globals.cs            全局用到的工具函数
Keywords.cs            根据配置的关键字进行链接生成
ManagedThreadPool.cs   多线程之间的配置管理类
SerializationHelper.cs   序列化操作工具类
StopWatch.cs         调用 win32API 的函数工具类
Transform.cs         转换工具类
WebPathStripper.cs      处理 web 路径的类
XmlSerializerSectionHandler.cs   处理 XML 序列化的工具类
              XmlRpc
                     MetaWeblog.cs                    
                     MetaWeblogAPI.cs        XML RPC 功能
              引用了 CookComputing.XmlRpc   XmlRpc 功能
三、 Dottext.Common 阅读
采用了以下目录来分类
      Config
            BaseBlogConfig.cs         
            MultipleBlogConfig.cs
            SingleBlogConfig.cs
      Data
            Cacher.cs              关于 blog 的各部分缓存
            Transformer.cs            路径等转换处理类
      Syndication                       存放对于外部交互的 WebAPI 接口
            AtomHandler.cs            
            AtomWriter.cs            
            CategoryWriter.cs
            CommentHandler.cs
            CommentRssWriter.cs
            CommonRssWriter.cs
EntryCollectionHandler.cs
LinksWriter.cs
RecentCommentsRSS.cs
RssCategoryHandler.cs
RssCommentHandler.cs
RssHandler.cs
RSSLinksHandler.cs
RssWriter.cs
SiteCatalogOpmlWriter.cs
      UrlManager                              处理对 blog 虚拟目录下的请求处理
            BlogStaticFileHandler.cs
            HandlerConfiguration.cs
            HttpForbiddenHandler.cs
            HttpHandler.cs
            PageHandlerFactory.cs
            UrlHelper.cs                             确定 URL 是否重写 , 并写入 HttpContent
            UrlReWriteHandlerFactory.cs
            UrlReWriteModule.cs
 
四、 DotText.Search. 分析
ConfigAnalyzer.cs
EntryData.cs
Indexer.cs
IndexManager.cs
IndexQueue.cs
QueryIndex.cs
Result.cs
ResultSet.cs
SearchConfiguration.cs
SearchEngineSchedule.cs
SearchLock.cs
Weighter.cs
 
五、 Dottext.Web.ServiceAPI.
Security
       BlogUser.cs
       UsernameTokenManager.cs
Utility.cs
             
六、 Admin
Resources
UserControls
WebUI
七、 DottextWeb
AggSite
      Controls
      Images
      Modules
             CaptchaImage
      Script
      Services
      Skins
      UI
 
 
再来看看通过运行SQL脚本获得的数据库。不过基于本人项目是结合系统已有的数据库来做,所以我修改了脚本(主要是数据库创建sql行,在运行这些豫剧之前,请千万做好数据库的备份工作,我可不想你除了问题来投诉我),将需要加入的数据表和存储过程、视图等加入到自己的数据库中。通过多次揣摩,我整理了一份dottext blog数据库的数据关系说明,特此列在下面,以方便后面的阅读,说实话,不理解数据库中结构,阅读相关的数据库操作会有云遮雾照的感觉,也不知道如何扩充数据结构满足自己项目需求。大家注意的是我阅读的版本应该有博客园自己添加进去的表格和存储过程,但是我只知道blog_profile是新增的,其他的没有仔细阅读,希望大家补充相关说明。
blog_Config 博客配置表
BlogID 唯一标示
UserName
Password
Email
Title
SubTitle
Skin 博客自己选择的皮肤
Application 应用程序,也就是唯一区分自己的目录区域,以后详细分析
Host 服务器,也就是主机名,可以进行多域名配置
Author 作者,一般可以是中文名
TimeZone
IsActive 是否有权限发表
[Language] 该博客的主要语言环境
ItemCount 后台列表的项目数
LastUpdated 最后一次发表时间,这个可能是为了某项任务方便的冗余字段
News 公告正文
SecondaryCss 补充的样式单,作者可以在系统之外提供适合自己的样式单
PostCount 发表文章的数量,包括评论等
StoryCount 文章数量
PingTrackCount pingback 的次数
CommentCount 被评论的次数
IsAggregated 是否支持聚合到首页
Flag 个人配置值,这个值是 PostConfig 枚举的组合值,决定发表一篇文章后的系统自动配置“动作”,如是否激活,是否允许评论等
SkinCssFile 样式单文件(有些模版允许在模版之外提供 CSS
BlogGroup 属于哪个博客群组,这个可以作为圈子的起始
RegisterTime 注册时间
IsMailNotify 是否允许邮件“骚扰”该博客
NotifyMail 邮件通知 Email, 注意,这个邮件同主要注册时候的 Email 不同用途
IsOnlyListTitle ???是否仅仅显示标题
BlogType (新增字段,用于区分博客的类型)
IsRecommend (新增字段,用于告诉是否推荐博客)
 
blog_Content 博客发表的文章、随笔、评论等
ID
Title 标题
DateAdded 添加的日期
SourceUrl 源地址,如果是发表,就为 NULL ,如果是评论之类的,就是评论者提自己提供的地址
PostType 发表的类型,具体以后补充
Author 作者
Email 联系 Email
SourceName 姓名或者 IP 地址
BlogID 该内容属于哪一个博客
Description 简要描述
DateUpdated 更新时间
TitleUrl 标题的连接地址
Text 正文
ParentID 该内容是针对哪一个 content 实体来提出的
FeedBackCount 反馈计数器
PostConfig 发表的配置 ID 1 表示评论, 93 是原创发表,参见 blog_config 中的 flag 字段
EntryName ???
IsOriginal ???
 
blog_Comment_Audit !!!是作为备份使用的,删除的文章进入此表格,但是前提是通过系统的删除功能。
 
 
blog_Content_Audit ???
 
blog_EntryRate 博客文章的条目访问记录表,不过估计对系统消耗太大,没有提供
 
blog_EntryViewCount 博客文章访问统计信息表
EntryID ID
BlogID 博客 ID, ,这两个字段创建了索引,所以一般情况下采用这两个字段做关联的查询效率应该不会很低
WebCount 通过 web 访问的次数
AggCount 聚合访问,通过 RSS 之类的访问。这两个是累计字段
WebLastUpdated 最后访问
AggLastUpdated 最后聚合访问
 
blog_Images 博客系统管理的图片
ImageID 图片 ID
Title 标题
CategoryID 类别,归类,往往是相册的 ID
Width
Height
[File] 文件名
Active 是否激活有效
BlogID 属于哪个博客
UploadTime 更新时间
 
blog_KeyWords 自定义的给博客使用的关键字配置
KeyWordID 关键字 ID
Word 单词
Text 文字
ReplaceFirstTimeOnly 是否第一次(在文章中的第一个单词)的时候被替换
OpenInNewWindow 新开窗口吗
Url 目标连接地址
Text 提示信息
BlogID 博客 ID
CaseSensitive 大小写是否敏感
 
blog_LinkCategories 类别表
CategoryID 类别 ID
Title 标题
Active 是否激活
BlogID 属于哪个博客, -1 表示这是属于系统分类
CategoryType ???这个字段告诉我们当前类别的类型,是连接分类、相册、还是系统的文章分类等。
Description 解释这个类别,或者相册
ParentID 属于哪一个的子对象
UpdateTime 更新时间
 
blog_Links     可访问的连接表,通过这个表来获取本站的可访问的博客文章
LinkID ID
Title 标题
Url 连结地址
Rss ???
Active 是否有效
CategoryID 属于哪一个类别,外键
BlogID 属于哪一个博客
PostID 文章的发表时候在 blog_content 中的 ID
NewWindow 是否新开窗口
UpdateTime 最后更新时间
 
Blog_Log 博客访问日志???
LogID 日志编号
Title 标题
Message 消息
UserName 用户名
Url 连结地址
ServerName 服务器名?
BlogID 博客 ID
StartDate 开始时间
EndDate 结束时间
 
blog_MailNotify 邮件通知
ID
EntryID 哪一个文章
BlogID 哪一个博客
SendToBlogID 发送到拿一个博客
Email 正文内容
 
 
blog_Profile 这个是中国汉化者自己增加的表
blog_Referrals 记录引用博客的地址的表
EntryID 那一篇文章
BlogID 博客
UrlID 唯一的连结地址 以上 3 字段创建了索引
[Count] 累计访问次数
LastUpdated 最后访问
 
blog_Roles 权限表
Roleid 权限 ID
Name 名称
Description 描述
 
 
blog_ScheduledEvents 这个好像是一个任务调度表?
 
blog_SkinControl 博客模版控制字段
介绍了各个后台的对应用户控件的名称
id 控件编号
ControlName 控件名称
Control 控件 ID
DefaultVisible 是否可见
 
blog_SkinControl_Config 控件配置表,决定每一个博客的界面元素是否可见
ControlID 哪一个控件
BlogID 博客
Visible 是否可见
 
Blog_urls 存储连结地址
UrlID
url
 
blog_UsersInRoles 博客所属的权利组别
ID
RoleID 规则,权限类别
UserID 博客
 
              相关视图 :
                            VIEW_ScheduleEvents       按照 ID 次序进行的调度事件
                            SiteCatalog                          类型为 6 的站点的分类视图
                            Log_View                            排序后的站点日志
                            blog_Content_View              排序后的系统中的 blog
 
              存储过程:

                            忽略,太多了,100多个.

        以上包括了工程结构说明和数据库表格说明,大致了解以上可以帮助我们后面的阅读理解。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值