加载中…
个人资料
小杰克
小杰克
  • 博客等级:
  • 博客积分:0
  • 博客访问:14,496
  • 关注人气:5
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

使用 ASP 开发一个简单的 CMS——新闻系统 <1>

(2007-04-07 06:27:25)
标签:

cms

新闻系统

模块

规划

代码

分类: 实用源码块
本节先理清我们将要开发的新闻系统的功能,并把各个功能划分成各个逻辑模块。
一 新闻系统简介

新闻发布系统其实是CMS(Content Manager System)对新闻信息方面的一个应用。所谓CMS,指后台由人工输入信息内容,然后系统自动将这些信息内容整理保存到一个指定文件中(通常是数据库);用户在前台浏览由系统生成的 HTML 页面。

目前,CMS系统主要有两类:
⒈ 生成静态页的
⒉ 从数据库实时读取的

生成静态页的,即用户浏览的页面为系统已经预先设计好的静态页面(有时 CMS 系统也可以智能生成一些 HTML 页面),CMS系统根据用户的请求,找出用户需要的页面,反馈给用户。
这种系统的好处是服务器负担很轻,信息反馈效率高;缺点是更新信息时工作量大,并且实时效率低。

从数据库实时读取的,这种模式为,把用户可能请求到的数据、信息,分类收集、存放在一个数据库系统内,当用户发送请求时,脚本就将用户需要的数据调出,生成 HTML 页面,反馈给用户。
这种系统的好处是实时性好,交互性强,但频繁的数据库访问需要服务器很高的数据吞吐性能。

举个例子说明:比如我要浏览一篇叫 《ASP 编程指南》的文章,一开始上面的两种 CMS 系统都是先从数据库里面找到这篇文章,但第一种 CMS 把这篇文章的静态 HTML 页面做了保存,如果再有对这篇文章的请求,系统就直接把已经保存的这篇文章的静态 HTML 页面反馈给用户,不用重复访问数据库;而第二种 CMS 对数据库访问结果不保存,反馈给用户之后,直接扔掉,当有相同的访问时,得再次访问数据库,取出页面,反馈给用户。

推荐几个成熟的新闻发布系统:
V7 Content Management Suite(http://www.vignette.com)、Interwoven-TeamSite(http://www.interwoven.com)、OpenCMS(http://www.opencms.org)、Zope-Content Management Framework(http://www.zope.org)。

二 功能划分

在功能模块上,我们划分前台与后台两个大的模块,然后再各自细分。一般地,相对而言,用户接触的是前台部分,他们可以浏览文章、评论、甚至发表文章;而后台是管理员的工作平台,他们管理用户、管理文章、管理评论、给用户分配权限,等等。

尽管 Web 2.0 及其以后的趋势是——用户是很大一部分内容的提供者,而不仅仅依靠网站设计者提供内容——但是,作为教程,我们这里假设用户不能发表文章,只能发表评论、浏览文章,而文章统统由网站管理员发表。这样子看来,这个系统是有点糟糕,但是做为教程,能为你做的已经做得足够好了,你要这个系统满足你的要求,那你得自己动脑子去。仅此说明。

用户在前台的操作流程:
使用 <wbr>ASP <wbr>开发一个简单的 <wbr>CMS——新闻系统 <wbr><1>
在浏览相关文章之前,需要进行权限验证。用户只能浏览自己权限以内的文章。

用户在前台检索文章的操作:
一个网站往往信息量大,分类栏目多,用户不能完全知道自己查找的信息在哪个栏目。此时,需要提供检索服务程序。
检索分为关键字检索和全文检索。
  • 关键词检索就是利用文章的关键词进行模糊匹配。这种方式快速、准确,但是用户有时很难输入准确的关键词。
  • 全文检索就是利用用户输入的检索词进行全文匹配。这种方式速度较慢,也不太准确,但是用户操作起来简单实用。

在本教程演示的系统中,两种检索方式都采用。另外我们还增加 Google 第三方搜索代码,方便用户搜索 Internet 网络上的信息。
用户在前台检索信息的流程:

使用 <wbr>ASP <wbr>开发一个简单的 <wbr>CMS——新闻系统 <wbr><1>

下面分析一下后台管理部分,即后台管理员管理文章、用户、评论,以及给用户分配各种权限的功能实现。
一个新闻系统,可能有多个管理人员,比如:写稿的、编辑的、专栏的,还有是管理整个后台的超级管理员。所以,设计后台系统时,也要规划好后台各用户的身份、权限。

在这里,我们只设立一个超级管理员用户,负责后台的一切事务,不再细分。
管理员在后台的管理流程:
使用 <wbr>ASP <wbr>开发一个简单的 <wbr>CMS——新闻系统 <wbr><1>

上面这一步,实际上是数学建模,分析我们要做什么事,这件事能不能解决,并得出一个解决方案。接下来,我们把上面的解决方案的每个步骤,细化落实到计算机程序模块上,只有这样,才能得到计算机解决的方案。
我们做程序设计,就是把问题交给计算机解决。所以,事前需要分析问题能否解决,即数学建模,然后再看看能否程序模块化,即编程起来能否实现,代价如何,这是能否程序化的问题。一般程序设计问题都要经过此两个分析过程。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有