上个星期就下了HiForum 2,但是一直没有打开过看,今天下午看了一小会,完全的被晕住了,下面说一下最初的印象,不一定对,仅供参考,以后会不断的学习这个,然后把一些有用的东西集成到我的stella forum中,方便大家一起学习。
打开解决方案后,因为不想用那个passport,所以就删除了一些无关的项目,这样只剩下AspNetForums、Components、Controls、Itelite.Passport.WebServicePorxy、SqlDataProvider这5个项目。
基本的结构
可能是得到的源代码不全,又或者我下的本来就是全部的东西(除了一些第三方组件),我现在看到的基本的结构是这样的:整个表示层的页面大部分是用控件组成的,这些控件应该是些复合控件,然后在控件里面会动态加载一些用户控件,另外还有重写datbind等方法来获得数据,呈现的时候,这些控件内部会调用Components项目的一些方法,涉及到数据处理的最后肯定是用SqlDataProvider。
首页版快的显示
我只看了首页版快的显示,呵呵,说实在的,在数据处理的时候和我的stella的思路差不多。首页是一个大控件ForumGroupView,这个控件里面好象是包了一个Repeater,然后Repeater的数据源是一个ArrayList,这个ArrayList就是保存着版块的资料啦。版快的资料是Components里的某些类提供的,这些类调用的数据处理是Components项目内的一个ForumsDataProvider类。
数据处理
说说上面的数据处理,ForumsDataProvider本身是一个抽象类,而SqlDataProvider项目中的唯一的一个类SqlDataProvider就是继承自它。而Components项目内所有的数据处理调用的是ForumsDataProvider,奇怪吧,原来这个ForumsDataProvider提供了一个Instance方法,用来返回具体的数据处理类,这里我还没看明白,我觉得应该是在这里返回了ForumsDataProvider的一个实例。呵呵,我还没想明白这里这么处理到底是为了什么。
系统内好象也有单纯的数据实体类,另外有的地方直接用了Hashtable和ArrayList。最底层的数据访问是用SqlDataReader。
皮肤的更换
这个系统可以换皮肤,我大致的看了一下,拿首页来说,只一个ForumGroupView,该控件承担了呈现论坛的任务,而它继承自SkinnedForumWebControl,一看名,大家就知道这个父类是用来进行皮肤主题处理的,它在内部主要是先读取当前用户的设置,然后去相应的文件夹加载用户控件。一句话,皮肤的更换实际上是动态的加载不同的用户控件。
其他
还有一个给我印象比较深的是,这个系统有一些类是用来进行环境信息的读取和设置的,比如Components项目内的ForumContext和Globals,ForumContext好象主要是返回一个HttpContext的当前实例,并有一些附加的信息,而Globals类似于一个读取系统信息的工具类,这让我想起了一些提供自助建站服务的程序。
另外,我觉得这个系统的整体设计比较的混乱,首先命名空间就让我摸不到头脑,然后项目内各种各样的类都存在,没有按照功能详细的划分,导致你想找个详细的东西根本就无从下手。代码组织方面,重载用的有些过,呵呵,还有夸张的是SqlDataProvider竟然长达6000多行!

这是我的最初的印象,以后的一段时间还将进一步的学习这个论坛系统。
还有,最近迷上了魔兽3冰封王座,这可是我玩的第一个电脑游戏啊~~~

2005-3-28 + 探索ASP.NET Forum (1) 最初的印象相关推荐

  1. 苏州高新区将新添商业中心 绿宝广场举行奠基典礼--2005/02/28

    苏州高新区将新添商业中心 绿宝广场举行奠基典礼--2005/02/28     一个集购物.娱乐.休闲.餐饮.办公于一体的商业中心将在不远的将来出现在苏州高新区.该项目名为绿宝广场,由印尼迈大集团投资 ...

  2. 探索 ASP.NET Futures (Part 2 - Search Enabled)

    在本系列的上一篇文章中,我们探索了ASP.NET Futures (May CTP)的SearchSiteMap功能,说明了如何将ASP.NET的SiteMap影射为符合Sitemaps协议的XML以 ...

  3. 探索ASP.NET Core中的IStartupFilter

    原文:Exploring IStartupFilter in ASP.NET Core 作者:Andrew Lock 译者:Lamond Lu 在本篇博客中,我将介绍一下IStartupFilter, ...

  4. http://www.cnblogs.com/plexwin/archive/2005/10/28/263888.html

    你想带一顶什么样的硕士帽 硕士研究生学习的动机 一个朋友曾问我这样一个问题,他已经被保送研究生了,但是在选择方向的时候他的学长向他建议选择一个将来好找工作的简单的研究方向,否则其他的方向就只能够留校做 ...

  5. 关于在安装ASP.NET Forum中出现的无法排序的问题.

    完全解决方案: 1.安装AspNetForums,不要安装数据库,完成 2.进入AspNetForums安装目录,找到AspNetForums.sql,第一步将其中的SQL_Latin1_Genera ...

  6. 探索ASP.NET MVC5系列之~~~6.Session篇(进程外Session)

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  7. 浅谈C#中的枚举 【转自http://www.cnblogs.com/liyingyi/archive/2005/12/28/306772.html】

    枚举类型是一种的值类型,它用于声明一组命名的常数.    (1)枚举的声明:枚举声明用于声明新的枚举类型.    访问修辞符 enum 枚举名:基础类型     {         枚举成员     ...

  8. 探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  9. 2005.3.28 星期一 多云/晴

    我终于化开和张的一切.只是爱过的人住定做不成朋友. 我想也许我并不需要那么长时间复原. 也许随时都可以好. 成熟究竟是什么?无情吗? 或许是吧. 他无情吗?我成熟吗? 或许是吧. 我还爱他吗? 我真的 ...

最新文章

  1. Go 语言编程 — viper 配置管理工具
  2. python数据分析的主要流程-python 数据分析概述
  3. ExtJS 4.1更新
  4. SQL PASS将于8月24日在北京中医药大学举办线下活动
  5. php调取 zabbix实时数据_zabbix-基础系列(三)-zabbix安装[官方版]
  6. Django中的缓存的配置与使用
  7. 【数据分析】简介Excel数据表及设计要求
  8. 用集合return多个值_Laravel + Nestedset 扩展:嵌套集合模型实现无限级分类
  9. IIS Express URL Rewrite无效
  10. Hibernate映射组件属性为集合(二)
  11. windows下安装MinGW、swig 、zlib
  12. jquery-ajax请求.NET MVC 后台
  13. JAVA第11章枚举与泛型总结
  14. SQL中使用经纬度查询数据的写法
  15. 深度解析C语言文件操作以及常见问题
  16. 漫步者lollipods如何调节音量_漫步者LolliPods怎么配对双耳-使用教程
  17. 哪里计算机考研只考一门课,计算机考研|专业课只考一门数据结构的院校有哪些...
  18. JSP动态网页技术基本知识点总结
  19. GIS开发之二维地下管线综合管理系统(Arcgis)第三节 使用python和modelbuilder
  20. Qt实现思维导图功能(三)

热门文章

  1. Linux的企业-Redis数据库、缓存和哨兵Sentinal、Redis高可用
  2. MVC系列框架之Struts存在的意义是什么?
  3. Error: unterminated string literal。通常原因是输出字符str中包含换行符导致的。
  4. 继承ViewGroup研究(汇总) 一、二、三
  5. HDOJ2020 ( 绝对值排序 ) 【水题】
  6. 深入XP之认识的引导文件NTLDR
  7. 如何更准确的理解面向对象编程中的对象
  8. 以太坊经典逆势上涨,行情能否继续?
  9. 965. Univalued Binary Tree
  10. 5.1基于JWT的认证和授权「深入浅出ASP.NET Core系列」