logo资料库

ASPNET的网站新闻管理系统设计与实现.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
论文图书馆 http://www.by-sj.com/ ASP.NET 的网站新闻管理系统设计与实现 ASP.NET 的网站新闻管理系统设计与实现 发布时间: 2004-04-15 作者:陈志华 邓贵仕(大连理工大学管理学院系统工程研究所) 【摘要】利用 ASP.NET 和 ADO.NET 技术开发的网站新闻管理系统,实现了网站新闻的动 态管理,使得对信息的管理更加及时、高效,提高了工作效率。同时对系统的开发原理、 系统的功能特点和设计方案进行了介绍。 【关键词】ASP.NET ADO.NET 新闻 管理 数据库 随着 Internet 的普及,越来越多的企业建立了自己的 WWW 网站,企业通过网站可以展示 产品,发布最新动态,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务 等。其中新闻管理系统是构成企业网站的一个重要组成部分,它担负着双层作用,一方面 可以用来动态发布有关新产品或新开发项目,另一方面又可以及时向顾客公告企业经营业 绩、技术与研发进展、特别推荐或优惠的工程项目、产品和服务,从而吸引顾客,扩大顾 客群。 传统的网站新闻管理方式有两种,一是静态 HTML 页面,更新信息时需要重新制作页面然 后上传页面并修改相应链接,这种方式因为效率太低已不多用。二是基于 ASP 和脚本语言, 将动态网页和数据库结合,通过应用程序来处理新闻,这是目前较为流行的做法。但是由 于 ASP 本身的局限性使得系统有一些不可克服的缺陷,而采取了 ASP.NET 技术的系统性 能上有了很大的改善,其主要表现在以下几方面: 1.由于 ASP 页面每次打开都必须经过先编译后解释的过程,所以页面在反复打开时速度 没有任何提升,而 ASP.NET 页面只需要一次编译后不需要重新编译,直到该页面被修改或 Web 应用程序重新启动。这使得在多次访问时速度有了极大的提升。 2.由于 ASP 没有提供任何输出数据为内容的元件,所以在使用 ASP 撰写数据库页面时只 能借助 ADO 的 RecordSet 对象逐笔读取记录,而 ASP.NET 通过 ADO.NET 提供的 DataGrid 等数据库元件可以直接和数据库联系。 3.ASP.NET 支持应用程序的实时更新。管理员不必关掉网络服务器或者甚至不用停止应 用程序的运行就可以更新应用文件。应用程序文件永远不会被加锁,因此甚至在程序运行 时文件就可以被覆盖。当文件更新后,系统会温和地转换到新的版本。 4.ASP.NET 采取"code-behind"方式编写代码使得代码更易于编写,结构更清晰,降低了系 统的开发与维护的复杂度和费用。 1 系统的开发原理 1.1 基于 ASP.NET 技术的系统结构模型 ASP.NET 结构是一个三层系统:UI 层、业务逻辑层和数据层,如图 1 所示。 图 1 ASP.NET 的系统结构模型
论文图书馆 http://www.by-sj.com/ UI 层负责与用户交互,接收用户的输入并将服务器端传来的数据呈现给客户。 业务逻辑层负责接收浏览器传来的请求并将请求传给数据层,同时将请求处理 结果发给浏览器。它由 Web 表单、XML Web 服务和组件服务组成。其中 Web 表单 是 ASP.NET 应用程序的核心所在,它是向客户呈现数据和信息的基础,也是响 应和处理客户与显示的 Web 表单交互生成的信息和数据的基础。 数据层是通过 ADO.NET 操纵数据为事务逻辑层提供数据服务,如存储数据操作 结果、返回数据检索结果等。 1.2 ADO.NET 访问数据库的原理 与数据库相连,ADO.NET 提供了如下 3 种方式:通过 ODBC 相连;通过 OLEDB 相 连;直接与 SQL Server 相连。3 种方式由于应用层次的差异,使得效率由低到 高,独立性由高到低。对于相连数据库的数据处理,也有 2 种方式,即一种是 通过 DataSet 来隔离异构的数据源,另一种是以流方式从数据源读取 (DataReader 方式)。 传统的应用程序是通过先建立到数据库的连接,在程序的整个运行过程中维护 连接的方式来设计的。ASP.NET 采取了断开连接方式的数据结构。当浏览器向 Web 服务器请求网页时,服务器处理这个请求,并将所请求的网页发送给浏览器, 然后连接就被断开,直到浏览器发出下一个请求。 ADO.NET 的另一个创新是引入了数据集(Dataset)。一个数据集是内存中提供数 据关系图的高速缓冲区。数据集对数据源一无所知,它们可以由程序或通过从 数据仓库中调入数据而被生成、填充。不论数据从何处获取,数据集都是通过 使用同样的程序模板而被操作的,并且它使用相同的潜在的数据缓冲区。 2 系统的功能设计 2.1 系统的功能结构 该新闻管理系统可以在 Windows 2000 Server 操作系统平台上运行,Web 服务器 为 IIS,数据库服务器为 Microsoft SQL Server2000,开发工具采用的 Microsoft Visual Studio .NET 和 DreamWeaver。图 2 给出系统的功能结构图。其工作流 程为:用户登录通过权限判断,普通用户只能浏览、阅读和查询新闻,注册用 户除了可以完成普通用户的操作外,还可以进入新闻管理模块进行新闻录入、 修改和删除的操作。注册用户除系统管理员外只能对自己录入的新闻进行删改 操作。 2.2 系统的功能特点 (1)操作简单、界面友好:完全控件式的页面布局,使得新闻的录入工作更简 便;许多选项包括新闻类别、来源部门等只需要点击鼠标就可以完成;另外, 跟踪出现的提示信息也让用户随时清楚自己的操作情况。 (2)即时可见:对新闻的处理(包括录入、修改、删除)将立即在主页的对应 栏目显示出来,达到"即时发布、即时见效"的功能。
论文图书馆 http://www.by-sj.com/ 图 2 系统功能结构图 (3)功能完善:包括常见网站的新闻管理的各个方面:新闻录入、浏览、删除、 修改、检索等各个方面,完整地实现了网站对即时新闻的管理要求。 (4)方便移植:针对不同的企业,只需要稍作修改就可以开发出适合本企业特 点的网站新闻管理系统! 3 系统的详细设计 系统的主要功能是通过几个功能模块来实现的。具体的设计过程如下: ⑴ 系统登录:该模块负责将用户分为普通用户和注册用户来实现用户权限的管 理。 ⑵ 新闻浏览:该模块负责分页列出网站所有新闻的信息,包括标题、类型、来 源部门字段及发布日期,每条新闻的标题被做成一个超链接,点击它们就能跳 转页面进行新闻阅读。 ⑶ 新闻阅读:在其他页面中点击标题链接即进入新闻阅读页面,此时,每条新 闻的详细信息将被取出,包括内容、标题、关键字等,并按照相对固定的格式 放置在页面的不同区域,所有新闻使用大致相同的页面布局,只是各字段对应 的内容不同而已,另外,页面其它位置,可以动态放置其他元件,如网站标志 logo、页面广告 banner 等链接图片,这样可以很容易地实现图文并茂的阅读效 果。 ⑷ 新闻查询:该模块提供了新闻查询功能,输入待查找的内容及选定分类信息 可以快速地找到符合条件的新闻,并输出查询结果。 ⑸ 新闻管理:该模块负责分页罗列登录的注册用户曾发布过且未删除的新闻信 息,用户可以对该条新闻进行删除、修改。非新闻发布者除系统管理员外不具 有对该条新闻的处理权限,所以不同用户进入此页面将显示不同的内容。 ⑹ 新闻录入和修改:注册用户录入一条新闻所需要的内容,包含标题、关键字、 类型、来源部门、发布日期等,同时从登录模块得到用户名,这些信息将被写 入数据库中保存。该模块还负责编辑状态下的更新,这时,它将根据取得的 Title 字段值对页面控件初始化。 下面以系统登录页面的编写为例给出主要事件和函数,说明该系统的开发过程。 //IsRegUserOk 函数:判断用户是否已经注册和密码是否正确 public bool IsRegUserOk()
论文图书馆 http://www.by-sj.com/ { string name=TextBoxName.Text.Trim(); string pwd=TextBoxPassword.Text.Trim(); //建立/打开数据库连接 SqlConnection conn=new SqlConnection(); conn.ConnectionString="server=(local);uid=sa;pwd=;database=jxdb"; conn.Open(); //建立 sql 字符串 string sql="select * from reg where name='"+name+"'"; SqlDataReader dr; SqlCommand cmd=new SqlCommand(sql,conn); dr=cmd.ExecuteReader(); //保留用户注册与否信息 bool isRegUserExist=dr.Read(); //关闭 DataReader dr.Close(); //取得用户名的密码 string sqlBoth="select * from reg where name='"+name+"'"; sqlBoth+="and pwd='"+pwd+"'"; SqlCommand cmdBoth=new SqlCommand(sqlBoth,conn); SqlDataReader drBoth; drBoth=cmdBoth.ExecuteReader(); //保留用户名+密码同时存在信息 bool isBothExist=drBoth.Read(); //关闭 DataReader drBoth.Close(); conn.Close(); //判断用户是否注册 if(!isRegUserExist) { Response.Write("
© 2025   本站由 资料铺 提供技术支持  网站地图