zoukankan      html  css  js  c++  java
  • Discuz!NT代码阅读笔记(6)从全局看看:各个模块功能摘要(2)

    Discuz!NT代码阅读笔记(1)--从HttpModule开始:首页的显示

    Discuz!NT代码阅读笔记(2)--网站安装也能自动化:论坛程序安装及初始化过程

    Discuz!NT代码阅读笔记(3)--网站安装也能自动化(2)--DNT安装时使用到的几个函数解析

    Discuz!NT代码阅读笔记(4)-- 一切皆可配置:页面的显示

    Discuz!NT代码阅读笔记(5)--从全局看看:各个模块功能摘要

      

    7Discuz.Config

    这个项目主要自定义了一些控件供其它模块使用.有些控件在其它项目中用的很多.模块化设计,似的DNT的各个页面风格统一.还有压根就不知道在哪里用的控件!不知道为什么放到那里.

    但有个问题是,这些控件在其它页面显示时,没有设计时支持,都是一串红字,看着很不爽.

    (8) Discuz.Data

    数据类.相当于DALBLL的说.这个项目中的DataProvider中的CS文件中包含了论坛常用功能的操作。

    DbProvider中的CS文件定义了数据访问接口,这些接口在该工程中的DbHelper.cs文件中实现。

    DbHelper.cs中封装了ADO.NET的常用操作,像ExecuteNonQuery()执行SQL指令,ExecuteCommandWithSplitter()方法运行含有GO命令的多条SQL命令,ExecuteDataset方法执行指定数据库连接字符串的命令,返回DataSetExecuteReader()数据阅读器方法,方法ExecuteScalar 返回结果集中的第一行第一列,FillDataset()方法填充数据集。

    这些方法使用了Config类中提供的方法,自己从配置中读取程序的配置信息。因为配置信息基本不会变化,用户在使用这些方法时不需要再单独提供这些信息。

    DbFields.cs非常有意思。它封装了常用数据表的字段。在组织SQL语句时,不必再一个个字段地输入了。程序员都是会偷懒的,呵呵。

    9Discuz.Data.SqlServer

    提供了管理操作使用的方法。相当于MVC中的C的一部分。暂时无法理解为什么不Discuz.Data和并,而是与单独放在一个项目中。难道这里的操作与数据库类型有关?

    10Discuz.Entity

    实体工程。相当于MVC中的M。这里定义来论坛和其它功能操作常用的实体描述,与数据库字段对应。其他类使用这些模型,处理和获取想要的信息。

    11Discuz.Event

    这个项目组定义了一些需要周期性自动处理的计划任务。到期自动触发,而不需要再手动调整。

    12Discuz.Forum

    程序的另一个BLL。这里定义的方法更贴近实际使用,它主要调用Discuz.Data中提供的方法蓝来处理论坛的操作。

    此外还定义来功能型类.比如前面提到的HttpModule等均在此项目中。

    13Discuz.Install

    论坛安装项目。前面已做介绍。

    14Discuz.Mall

    论坛商城模块。处理一些商品交易相关功能。

    15Discuz.Plugin

    DNT附加功能模块。定义了一些接口,实现这些接口后才可在论坛中添加这些功能。

    16Discuz.Plugin.Mail.SysMail

    仅定义来一个.net邮件发送程序。没有其他功能

    17Discuz.Plugin.PasswordMode

    定义了第三方密码加密算法。从动网论坛转过来的用户使用。

    这个模块基本上就是拉客户用的。。。。

    18Discuz.Plugin.Preview.Jpg

    生成Jpg图像预览功能。

    19Discuz.Plugin.Spread

    论坛扩展使用的功能模块。其中自定义了些配置信息。

    20Discuz.Space

    个人空间模块的UI。包含独立的配置功能、数据访问功能。

    21Discuz.Space.Modules

    空间模块的管理、配置等功能模块

    22Discuz.Space.Modules.Album

    个人相册模块

    23Discuz.Web

    个人认为最牛的模块。论坛的前台UI。强大的不敢看。。。以后会详细读读的。

    24Discuz.Web.Admin

    DNT后台管理模块。强大程度跟Discuz.Web 相当。

    这个项目里边有一个模板生成的功能,很值得参考。
    25Discuz.Web.Services

    最下边的一个项目了。具体实现了什么功能还没搞明白。

    小结一下:DNT官方论坛上看到它基本上是MVC结构,里边的很多做法值得学习参考。

    这几天下载了几个其他开源的论坛、博客代码,看看无论从功能上还是从代码的结构上真不如DNT的好。

    我最近做的一个东西,就参考了DNT的做法。我在一个不开源的ASP.NET程序中,通过注册HttpModule,添加了一些应用程序级的方法。只要网站启动,我的方法就要周期性地执行。同时,我的代码也优化了不少。以前,碰见访问数据库的时候,就开始定义SqlCommandSqlDataAddapter写连接字符串,现在习惯性地先添加SqlHelper类。方便多了。

    DNT引领我学ASP.NET,敬请关注。

    Technorati 标签: DNT

  • 相关阅读:
    一些 Ubuntu 使用的小技巧
    体验 Web 自动化测试工具 Selenium
    CentOS 7 上安装 Nginx
    Windows查看端口占用情况
    Windows远程登录提醒:由于没有远程桌面授权服务器可以提供许可证,远程会话连接已断开。请跟服务器管理员联系。
    Vue动态的改变css样式
    centos7 U盘安装卡在 starting dracut initqueue hook Reached target Basic System
    用tsc编译ts文件的时候报错,tsc : 无法加载文件,因为在此系统上禁止运行脚本;
    Linux修改SSH默认的端口号
    Centos编译安装新版本Git
  • 原文地址:https://www.cnblogs.com/zyqgold/p/1736055.html
Copyright © 2011-2022 走看看