2004-7-31 + 文章管理系统

---> 源文件下载 <----------------

初始界面:



文章显示界面:



一般用户界面:



超级管理员界面:



终于把这个东西做完了……
大家从截图就可以看出来,这个文章管理系统的大体功能。下面我详细的列举一下:
A.分类查看文章,排序查看文章,相关文章显示。
B.个人用户注册。
C.文章的添加,修改,删除。
D.用户列表查看。
E.设超级管理员,可以管理所有文章和用户。

详细的程序设计大家可以从源文件里看到,这里我主要说说其中的重点和难点。
1.关于系统规划。这次在进行的途中,屡次出现返回到组件内部进行修改的情况。还有就是有些功能是做着做着突发奇想,就这么加上了。在以后的学习中这些事情都是应该绝对避免的。我觉得规划最好详细到每一个步骤。或许应该研究一下uml?
2.关于组件的设计。里面的组件分成数据库操作和业务操作两部分,我不知道这么叫是不是准确,不过这两个是严格分工的。数据库操作层就是负责与数据库打交道,而后面的业务操作层则负责连数据部分和表示部分。不过这里面有个问题,就是方法的重载问题,虽然这样可以降低一些复杂度,不过对于我这样的新手来说,+3次及以上的重载无疑增加了程序阅读和使用的难度,于是我就索性把每个方法都起不一样的名字,这样应该可以避免犯错误,虽然这样做好象是……
3.三层该怎么做?谁来告诉我?
4.关于异常检查。因为使用了组件,所以对异常的检查就成了问题。我的做法是把异常信息和sql语句都做为属性传出来,这样可以方便的发现问题。
5.关于项目本身。我是先在vs.net里建了一个空项目,然后一个层一个层往里加。这样做的好处就是可以方便的在各个层之间进行操作。在进行中,会频繁的对业务操作层进行修改,这个时候生成的时候只要选择仅生成该项目就可以,而不是使用shift+ctrl+B。这样做缩短了编译时间,并且增加了进行时的流畅性。
6.关于页面中的重复部分。统统的 ctrl+c/ctrl+v ……不过也不是胡乱的这么做,要小心不要把命名空间和类弄乱了。
7.关于安全性。这个使用了“基于角色的forms验证”。系统用户分一般用户和超级管理员两类,一般用户的资料是放在数据库里的,但是超级管理员的资料放在了web.config(因为这个的资料少,而且放在数据库还要进行映射,麻烦……),这样在验证的时候就要采取不一样的办法。还要注意的是的,web.config文件中不要把文件夹的路径搞错。
8.关于页面的设置。在asp的时代,我都习惯把很多功能放到一个页面,然后用条件来判断该显示哪一部分。现在用.net了,我还没有想好该怎么做。所以基本就是每个功能一个页面,但是添加和编辑是放在一个页面里的,因为这个用条件判断起来方便。
9.关于添加和编辑的判断。添加和编辑放在一个页面里,那什么时候是添加什么时候是编辑。这个判断我一开始用类的静态变量,在意识到自己的无知后,我改用了cookie,不过那天回去睡了一觉后,发现其实一个label就可以解决所有的问题。因为编辑的时候传过来一个id字段,这个id字段就存放在label里面,所以就可以根据label里的值来判断到底是执行添加还是执行编辑。
10.关于session的丢失问题。一开始我用session来存放用户名,可是却发生了session丢失的问题。可能是cookie和sessin共用引起的?反正最后我老实了,用了cookie,感觉也不错 :)
11.区分用户类型。在登陆的时候好办,因为超级管理员的id在一般用户表里根本就没有(我故意这样设的),可是当超级管理员在管理完一个东西要返回到具体页面时就会发生困难,因为管理页面是和一般用户共用的一个。所以在转回到超级管理页面时需要加一个判断来实现。另外也不用担心一般用户会进入到超级管理界面,因为我们用的是“基于角色的forms验证”。
12.检索相关文章的实现。以前我也觉得很神秘,不过其实就是在添加文章的时候指定一个关键词,然后在显示的时候搜索相近的关键词就可以了。
13.关于数据库。这次我用了sql server,但没有用到任何特性。像使用access一样使用它。
数据库名:api
表:arts
id(int)|title(varchar)|body(text)|author(varchar)|type(varchar)|class(varchar)|
opentime(datetime)|readc(int)|keywords(varchar)
表:users
id(int)|uid(varchar)|pwd(varchar)|class(varchar)|email(varchar)|regtime(datetime)

大体就这么多了,其他的都在源文件里,感兴趣的就下载下来看看吧,还要请高人多多指教!
posted on 2006-06-29 09:32  Notus|南色的风  阅读(235)  评论(0编辑  收藏  举报