日期:2014-01-10  浏览次数:20654 次

起草语:流行论坛(我们重点讨论ASP,ASP。NET论坛)的开发思路
老手可略过此节,就读下节。

目前,网上论坛各式各样各种版本不计其数,归根结底如何神通其核心数据存取仓库都是“数据库”,我是指我们常用的ACCESS SQLSERVER等等这种形式的“数据库”,而后由PHP ASP ASP。NET JSP等等这些后台语言通过中心“ADO,SQL”两条线,像伐木搭桥似的一小块一小块(会员注册、会员登陆、论坛栏目分类、项目统计、单个栏目、帖子浏览、后台管理……)积木似的累积成形式各异的论坛系统,而这一块块的“积木”,如何异样然终归就是对数据库的存取其成分无非就是构成木料的物质不会变成铁的,可见,好的论坛程序并不难写,难得是清晰的思路、优质的“数据库结构”,既然是这样,下面我就将本人着手开发ASP。NET+XML无数据库实现论坛总结的一些经验思路一一陈述,读毕若有兴趣不妨自己动手一试,尝试一下用全新的手段开发论坛的乐趣

第一节:废话不说、解答疑问

1:这篇文章需熟悉哪些知识的人才能读懂?
至少从事学习一年以上WEB后台网站编程综合知识的人即可读懂,熟悉ASP。NET编程及XML文档结构的程序员更能深入意会
2:Xml能充当“数据库”吗?
能,只不过是不同的概念和组织形式
3:用Xml充当数据库制作论坛的开发难度是否比使用ACCESS、SQLSERVER等为数据库的开发难度高?
高许多,甚至有些功能本人水平有限无从下手解决(XML充当数据库相比ACCESS等有一定本质上的局限),但并不代表不可能
4:本文为什么选择ASP。NET做为后台程序语言来结合XML建造论坛?
无特殊意义,ASP、PHP、JSP或其他后台程序语言均可,甚至VB、VC、JAVA等能以软件形式表现论坛
5:两者相比,Xml充当“数据库”做的论坛或其他系统有何好处?
如程序及XML结构精妙完善,无论在大小程序系统上均在
-速度(基于文件,相对忧于ADO存取数据库)
-资源占用(无论数据总和多少,基本是处理分布式的小型文件(通常在1-100K内),无论是在内存或CPU的占用等均忧于数据库)
-分布式(单一的文件集合于文件夹,与将数据集成为一身的数据库,各有优势)
-移植性和通用性(XML本身即是一种通用数据描述语言,无论是在不同操作系统或程序语言上均能顺利移植和应用)
-修改、查找、维护、批量处理(如数据量大,则必须借助程序系统操作,如直接在文件夹管理文件非常麻烦,这方面逊于数据库系统的界面和易用性,除非建立自己的XML数据处理软件或WEB系统弥补这方面的不足)
-安全性(大智慧是取决于程序、加密方面,小聪明是更改后台文件、文件夹的名称和存放位置,只不过基于XML文件构建的数据库结构比较散乱,不如数据表封装的简单)

第二节:引路入门、建立基地(XML数据库结构)

明确做什么样的论坛系统,才能理起思路,这里我们假设开发一简单论坛,其功能功用均效仿常见论坛,我们只要求一个栏目
XML数据库的实现{
会员资料存储(在主目录新建一文件,名为user.xml,该user.xml文件即作为存储所有会员资料的文件,本例结构可是如下形式)[
<?xml version="1.0" encoding="gb2312"?>
<alluser>
<fyw name="风云舞" pass="1234" sex="男士" age="20" img="http://www.lshdic.com/bbs/image/user40.jpg" fatie="20" exp="243" homepage="http://www.lshdic.com" email="lshdic@sina.com" oicq="21152530" qianming="签名档内容" address="山东临沂"/>
<cike name="孤独刺客" pass="123" sex="男士" age="20" img="man2.gif" fatie="0" exp="20" homepage="" email="gdcike@163.com" oicq="" qianming="风云他是猪!吭大爷做关税区的斑竹!" address="山东临沂"/>
<plgirl name="千千纯子" pass="123" sex="女士" age="20" img="woman1.gif" fatie="0" exp="0" homepage="" email="" oicq="" qianming="" address=""/>
</alluser>
]
这是本例所采用的XML存储结构,不难看出一个标签即包含了一个会员的所有信息,标签名即是“用户帐号”,其中name=昵称、pass=密码、sex=性别……,其中“用户帐号”必须保证是唯一的,而且必须限制为英文字母或英文字母后边带数字,关于XML的文件结构及数据一定要求符合XML文档规范及命名规范,若此后在程序中用户所提交数据处理不托,或可导致资料泄露,或该user.xml即宣告报废,必须手工查找更正,否则无法正常存取

论坛帖子资料存储(在主目录新建一文件夹,名为data,该data文件夹今后即保存所有会员发表的帖子,其中帖子的文件名是随机或有规律的如1.xml,2.xml,3.xml,这些文件存储了帖子的所有数据包括主题、回复,当然这些文件的建立、修改、起名、删除等都是在以后用程序实现的,至于新文件起名的程序部分要保证其名称与以有文件互不冲突即可,文件名可以是无任何规律的,毕竟今后我们不以文件名来实现排序,其单个XML文件内容结构如下)[
1.xml:
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type='text/xsl' href='../file.aspx?dex=1.xml'?>
<document>
<record>
<anthor>fyw</anthor>
<title>帖子标题</title>
<date>2003-12-6 3:27:18</date>
<gengxindate>2003-12-6 3:27:18</gengxindate>
<body>帖子内容

<hr>内容是以过滤HTML等于XML文档规范相冲突的字符以后的合法内容,标题也需要过滤
</body>
</record>
</document>

2.xml:
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type='text/xsl' href='../file.aspx?dex=7908604.xml'?>
<document>
<record>
<anthor>fyw</anthor>
<title>帖子标题</title>
<date>2003-12-6 3:54:59</date>
<gengxindate>2003-12-6 3:54:59</gengxindate>
<body>帖子内容</body>
<reply>
<anthor>cike</anthor>
<date&g