1、个性化的新闻推送系统设计与实现摘要在网络发展的新时代,越来越多的信息在网上发布,新闻作为信息的一个重要的主题也不例外。为使用户轻松获得更新最好的新闻信息,每天的信息发布、更新都需要投入很大的人力和物力.本文通过研究ASP.NET技术+数据库SQL Server 2008结合的方式,以 Microsoft公司Internet Information Server 7。0作为Web服务器,实现了一个基于浏览器/服务器(Browser/Server)模式的网络新闻发布系统,完成了用户浏览及管理员操作的各项功能,如:栏目菜单的显示、栏目内新闻的显示、新闻搜索、新闻评价、添加新闻、新闻的修改和删除、新闻
2、栏目管理、用户管理等。系统设计严格遵循软件工程思想,完成了系统的可行性分析,需求分析,概要设计和详细设计等工作。关键词: 网络,信息,ASP。NET,浏览器/服务器AbstractNowadays, along with Internet future development, more and more information are released by the Internet。 The news is of them. For letting the customer to acquire some satisfied news information, everyday, the
3、collection, release and renew of information need a great of energy andthe material resources。This text passes a research ASP。NET technique and general method of the database SQL Server 2008 about write procedure, Carry out a Release system of the news on the network, it takes Browser/Server as work
4、 terrace。 Completed various function of the customer about browse and the managing person in operation, such as: show of the column, the manifestation of the column, the news search, the commentary of the news, increase news, modify news, delete news, manage of the column, manage customer Etc。 The d
5、esign of the system follows the thought of the software engineering strictly, complete the analysis of possibility, the analytical about need, the concept design, detailed design Etc。Keyword:Internet, Information, ASP.NET, Browser/Server.目录前言11。绪论21。1.新闻发布系统概述21.2。国内外新闻发布系统研究现状21.3。信息传递方式的发展22.系统运行、
6、布署及开发环境介绍32。1。系统运行环境32.1.1。软件环境32.1。2。硬件环境32.2.系统布署32.3.系统开发工具及运行介绍32。3。1。开发工具(Microsoft Visual Studio 2010)32.3.2.开发语言(C.Net)42。3.3.数据库(SQL Server 2005)52。3.4.Internet 信息服务(IIS7.0)93.系统分析及总体设计113.1。需求分析113。2。系统结构图124。系统设计144。1。系统设计144.1.1。数据库访问144。1。2。用户控件274。1。3。代码公共类284。2。系统页面设计314.2.1。前台新闻浏览314。
7、2.2。后台新闻发布及系统管理405.数据库设计与实现465。1.数据库逻辑关系465。1。1.用户、角色、权限和新闻栏目关系465。1。2。新闻内容关系图475.2。数据库说明475。2.1.数据库说明475.2。2。数据表说明47结 论49参考文献5039 前言当我们进入21世纪的时候,科学技术正以我们难以想象的速度增长,信息传播载体Internet的流行使我们真正进入了信息时代,随着世界范围内Internet环境的形成,全球正进入一个以网络为中心的计算时代,以Internet技术为代表的信息技术为人们创造了一种新的不受地域、时间和计算机本身约束的信息交流、共享和协作方式,这种新的方式给每
8、个人带来了新的机会和挑战.它不仅仅为人们提供无限的知识财富,同时提供给人们一个共享知识的平台.而传统的新闻系统,如新浪、搜狐等.因为涉及内容太多很多人根本就无法找到自己也需要的新闻,往往是新闻系统发布什么我们看什么,而大多数新闻都是我们不关心的,反而浪费我们大量的时间.针对这一问题我们开发一个新闻发布系统,也许无法和新浪、搜狐这些大的门户网站相比,但我们力致将它做成了一个最适合你的,同时也是你最需要的新闻系统.1. 绪论1.1. 新闻发布系统概述新闻发布系统(News Management System)又称为信息发布系统,是一个利用计算机网络为平台构建的新闻发布系统,它将网站上的新闻发布等主
9、要信息集中管理,并通过信息的某些性质进行分类,最后系统化,标准化的发布到网站上的一种网站应用程序,网站信息通过一个简单的界面加入数据,然后通过已有的网页模板格式与审核流程发布到网站上。它的出现大大减轻了网站更新维护的工作量,通过网络数据库的引用,将网络的更新工作简化到只需要录入文字和上传图片,从而使网站的更新的速度大大缩短,从而大大加快了信息的传播速度。1.2. 国内外新闻发布系统研究现状目前,新闻发布系统的开发技术已经十分成熟,用到的技术有很多,比如ASP技术 PHP技术 JSP技术 。NET技术等,成熟的新闻发布系统有很多,如著名的V7 Content Management Suite(西
10、门子公司采用的技术),Interwoven-Team Site(Cisco 采用的系统)以及开源的产品也得到了广泛的应用,如Open CMS, ZopeContent Management Framework等。1.3. 信息传递方式的发展信息的传递从最初的通信信件,到后来的新闻报纸出版,到现如今的网络信息传递,人们获取信息的途径越来越多,越来越便捷。2. 系统运行、布署及开发环境介绍2.1. 系统运行环境2.1.1. 软件环境操作系统Windows Server 2008 标准版WEB服务器IIS7。0数据库SQL Server 2008 标准版2.1.2. 硬件环境硬件环境可以根实际情况进
11、行相就调整,以下为推荐的几个主要的主机配件性能要求.CPU双四核内存8G硬盘500GB网卡双千兆网卡2.2. 系统布署1) 安装IIS7.02) 发布应用系统3) 配置应用系统2.3. 系统开发工具及运行介绍2.3.1. 开发工具(Microsoft Visual Studio 2010)它将是经典的一个版本,相当于当年的6。0版.而且它可以自定义开始页;新功能还包括:(1) C# 4.0中的动态类型和动态编程;(2) 多显示器支持;(3) 使用Visual Studio 2010的特性支持TDD;(4) 支持Office ;(5) Quick Search特性;(6) C+ 0x新特性;(7
12、) IDE增强;(8) 使用Visual C+ 2010创建Ribbon界面;(9) 新增基于.NET平台的语言 F#;而根据微软发布的一份官方文档宣称,Visual Studio 2010和。NET Framework 4。0将在下面五个方面有所创新:民主化的应用程序生命周期管理在一个组织中,应用程序生命周期管理(ALM)将牵涉到多个角色.但是在传统意义上,这一过程中的每个角色并不是完全平等的。Visual Studio Team System 2010将坚持打造一个功能平等、共同分担的平台以用于组织内的应用程序生命周期管理过程.顺应新的技术潮流每年,业界内的新技术和新趋势层出不穷。通过Vi
13、sual Studio 2010,微软将为开发者提供合适的工具和框架,以支持软件开发中最新的架构,开发和部署。让开发商惊喜从Visual Studio的第一个版本开始,微软就将提高开发人员的工作效率和灵活性作为自己的目标。Visual Studio 2010将继续关注并且显著地改进开发者最核心的开发体验。下一代平台浪潮的弄潮儿微软将继续投资于市场领先的操作系统,工具软件和服务器平台,为客户创造更高的价值。使用Visual Studio 2010,将可以在新一代的应用平台上,为你的客户创造令人惊奇的解决方案。 跨部门的应用客户将在不同规模的组织内创建应用,跨度从单个部门到整个企业。Visual
14、Studio 2010将确保在这么宽泛的范围内的应用开发都得到支持.2.3.2. 开发语言(C#.Net) C是一个语言,。net是一个平台,上面支持用C或者VBdotNet写代码.另外,C#不但可以开发基于。net的应用程序,也可以开发基于WinForm的程序,这就是区别。若是单纯以概念来说,你可以把。net当做一个工作平台一般,它是一个开发环境的基底,提供你开发Windows、Web、Mobile、XML。.。等应用程式一个共通的平台,若是要了解深一点,则再去了解其运作的相关机制那是有助于你利用它来开发。C和。NET主要是应用在网际网路。C(读做Csharp)编程语言是由微软公司的Ande
15、rs Hejlsberg和 Scott Willamette领导的开发小组专门为。NET平台设计的语言,它可以使程序员移植到。NET上。这种移植对于广大的程序员来说是比较容易的,因为C#从C,C+和Java发展而来,它采用了这三种语言最优秀的特点,并加入了它自己的特性。C是事件的驱动的,完全面向对象的可视化编程语言,我们可以使用集成开发环境来编写C#程序。使用IDE,程序员可以方便的建立,运行,测试和调试C程序,这就将开发一个可用程序的时间减少到不用IDE开发时所用时间的一小部分。使用IDE迅速建立一个应用程序的过程称为快速反映开发。.NET 是 Microsoft 的 XML Web 服务平
16、台。不论操作系统或编程语言有何差别,XML Web 服务能使应用程序在 Internet 上传输和共享数据。Microsoft 。NET 平台包含广泛的产品系列,它们都是基于 XML 和 Internet 行业标准构建,提供从开发、管理、使用到体验 XML Web 服务的每一方面。XML Web 服务将成为您今天正在使用的 Microsoft 的应用程序、工具和服务器的一部分 - 并且将要打造出全新的产品以满足您所有业务需求。更具体地说,Microsoft 正在五个方面创建 。NET 平台,即工具、服务器、XML Web 服务、客户端和 。NET 体验。2.3.3. 数据库(SQL Serve
17、r 2005)SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本。这篇文章详细介绍了Microsoft SQL Server 2008中的新的特性、优点和功能 在现今数据的世界里,公司要获得成功和不断发展,他们需要定位主要的数据趋势的愿景.微软的这个数据平台愿景帮助公司满足这些数据爆炸和下一代数据驱动应用程序的需求。微软将继续投入和发展以下的关键领域来支持他们的数据平台愿景:关键任务企业数据平台、动态开发、关系数据和商业智能.l SQL Server 2008新功能SQL Server 2005 是
18、一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。一、可信任的在今天数据驱动的世界中,公司需要继续访问他们的数据。SQL Server 2008为关键任务应用程序提供了强大的安全特性、可靠性和可扩展性.(一)保护你的信息在过去的SQL Server 2005的基础之上,SQL Server 2008做了以下方面的增强来扩展它的安全性:n 简单的数据加密n 外键管理n 增强了审查(二)确保业务可持续性有了SQL Se
19、rver 2008,微软继续使公司具有提供简化了管理并具高可靠性的应用的能力.n 改进了数据库镜像n 热添加CPU(三)最佳的和可预测的系统性能公司在面对不断增长的压力,要提供可预计的响应和对随着用户数目的增长而不断增长的数据量进行管理。SQL Server 2008提供了一个广泛的功能集合,使你的数据平台上的所有工作负载的执行都是可扩展的和可预测的。n 性能数据的采集n 扩展事件n 备份压缩n 数据压缩n 资源监控器n 稳定的计划二、高效的SQL Server 2008降低了管理系统、。NET架构和Visual Studioreg; Team System的时间和成本,使得开发人员可以开发强
20、大的下一代数据库应用程序。(一)基于政策的管理作为微软正在努力降低公司的总成本所作的工作的一部分,SQL Server 2008推出了陈述式管理架构(DMF),它是一个用于SQL Server数据库引擎的新的基于策略的管理框架。陈述式管理提供了以下优点: 遵从系统配置的政策 监控和防止通过创建不符合配置的政策来改变系统 通过简化管理工作来减少公司的总成本 使用SQL Server 管理套件查找遵从性问题(二)改进了安装SQL Server 2008对SQL Server的服务生命周期提供了显著的改进,它重新设计了安装、建立和配置架构.这些改进将计算机上的各个安装与SQL Server软件的配置
21、分离开来,这使得公司和软件合作伙伴可以提供推荐的安装配置。(三)加速开发过程SQL Server提供了集成的开发环境和更高级的数据提取,使开发人员可以创建下一代数据应用程序,同时简化了对数据的访问。n ADO。NET实体框架n 语言级集成查询能力n CLR集成和ADO。NET对象服务n Service Broker可扩展性n Transact-SQL的改进(四)偶尔连接系统有了移动设备和活动式工作人员,偶尔连接成为了一种工作方式。SQL Server 2008推出了一个统一的同步平台,使得在应用程序、数据存储和数据类型之间达到一致性同步。在与Visual Studio 的合作下,SQL Ser
22、ver 2008使得可以通过ADO。NET中提供的新的同步服务和Visual Studio中的脱机设计器快速的创建偶尔连接系统。SQL Server 2008提供了支持,使得可以改变跟踪和使客户可以以最小的执行消耗进行功能强大的执行,以此来开发基于缓存的、基于同步的和基于通知的应用程序.(五)不只是关系数据应用程序正在结合使用越来越多的数据类型,而不仅仅是过去数据库所支持的那些。SQL Server 2008基于过去对非关系数据的强大支持,提供了新的数据类型使得开发人员和管理员可以有效的存储和管理非结构化数据,例如文档和图片。还增加了对管理高级地理数据的支持。除了新的数据类型,SQL Serv
23、er 2008还提供了一系列对不同数据类型的服务,同时为数据平台提供了可靠性、安全性和易管理性。三、智能的商业智能(BI)继续作为大多数公司投资的关键领域和对于公司所有层面的用户来说的一个无价的信息源。SQL Server 2008提供了一个全面的平台,用于当用户需要时你可以为其提供智能化。(一)集成任何数据公司继续投资于商业智能和数据仓库解决方案,以便从他们的数据中获取商业价值.SQL Server 2008提供了一个全面的和可扩展的数据仓库平台,它可以用一个单独的分析存储进行强大的分析,以满足成千上万的用户在几兆字节的数据中的需求。下面是SQL Server 2008中在数据仓库方面的一些
24、优点。n 数据压缩n 备份压缩n 分区表并行n 星型联接查询优化器n 资源监控器n 分组设置n 捕获变更数据n MERGESQL语句n 可扩展的集成服务(二)发送相应的报表SQL Server 2008提供了一个可扩展的商业智能基础设施,使得IT人员可以在整个公司内使用商业智能来管理报表以及任何规模和复杂度的分析.SQL Server 2008使得公司可以有效的以用户想要的格式和他们的地址发送相应的、个人的报表给成千上万的用户。通过提供了交互发送用户需要的企业报表,获得报表服务的用户数目大大增加了.这使得用户可以获得对他们各自领域的洞察的相关信息的及时访问,使得他们可以作出更好、更快、更符合的
25、决策。SQL Server 2008使得所有的用户可以通过下面的报表改进之处来制作、管理和使用报表:n 企业报表引擎n 新的报表设计器n 强大的可视化n Microsoft Office渲染n Microsoft SharePoint 集成(三)使用户获得全面的洞察力及时访问准确信息,使用户快速对问题、甚至是非常复杂的问题作出反应,这是在线分析处理的前提(Online Analytical Processing,OLAP).SQL Server 2008基于SQL Server 2005强大的OLAP能力,为所有用户提供了更快的查询速度。这个性能的提升使得公司可以执行具有许多维度和聚合的非常复
26、杂的分析.这个执行速度与Microsoft Office的深度集成相结合,使SQL Server 2008可以让所有用户获得全面的洞察力.SQL Server分析服务具有下面的分析优势:n 设计为可扩展的n 块计算n 回写到MOLAPn 资源监控器n 预测分析2.3.4. Internet 信息服务(IIS7.0)Windows的网络服务器Internet Information Services(IIS)7.0 将整合ASP。NET,改善诊断系统,引入新款管理员用户界面,配置系统以及一系列新构件。微软IIS,网络平台及工具开发组项目经理Bill Staples以及产品经理Mary Alice
27、 Colvin指出,虽然微软下一代网络服务器IIS7.0到2006年Longhorn发布时才推出,但现时许多Web开发者都迫不及待地想知道IIS 7。0有那些具体改进之处。在采访中,Staples和Colvin都毫不掩饰地谈到,IIS 7.0的最大改进是其构件部分。用户可以随心所欲地开启或关闭IIS的特定构件来获得或删除对应的功能,这意味着用户在安装网络服务器时,可以一次选择一个构件进行增删减操作。 IIS 7.0 6大新特性: 1) 模块化的网络核心允许用户增加和删除特定的功能。如果要使用服务统计构件,仅需几个模块(不包括ISAPI). 2) 一个统一标准的HTTP管道,它对应于本地管理方面
28、的应用程序。用户可以对经典的ASP网页使用基于窗体的认证系统. 3) 用户可以建立自己的IHttpModule以及IHttpHandlers,并且把它们插入到统一的管道。 4) 新款分布式的XML设置系统,它利用了ASP。NET的设置系统的优点. 5) 改善的诊断和问题解答机制,包括了新Runtime状态以及跟踪功能。 6) 新型可扩展,面向任务的管理员用户界面。3. 系统分析及总体设计3.1. 需求分析该系统为新闻发布网站,需要经常发布一些新闻,如何有效的管理和发布新闻呢,最初用户的需求为:“该新闻系统具有一般新闻系统的功能,同时具有新闻审核和不同管理员不同管理权限的功能” .通过对其它一些
29、新闻系统的调查发现,一般新闻系统功能如下: 前台按分类显示新闻; 搜索新闻; 后台管理: 添加、删除和修改新闻 添加、删除和修改用户 添加、删除和修改新闻分类 添加新闻(添加成功后的新闻根据管理员权限分为可发布新闻和待审核新闻)需要新闻审核,说明添加后的新闻分为两种:直接发布新闻和待审核新闻,同时待审核的新闻通过管理员或审核员经审核后才可以上传到网站,管理员有不同的权限,需要有个管理权限的功能,在系统中应该有个超级管理员,具有所有权限,能够对系统进行全面管理,同时管理员可以修改自己的一些信息。根据校园网站新闻发布管理的实际需求,在首页中能显示最热门新闻、头条新闻和最近发布的几条新闻等,同时在后
30、台发布新闻时可以添加图片,也可以添加HTML语法,在前台能自动根据所显示的图片和HTML语法来显示新闻。在后台管理中,因为有权限的管理员才能登录管理后台,所以需要有个登录验证模块,而且需要根据用户权限的不同显示不同的管理目录,在管理新闻和用户时,当数据少时管理起来还比较方便,如果一多则想找到某条新闻或某个用户就很难,所以需要有个查找(新闻标题、用户)模块用于查找新闻或用户.根据以上需求分析,该系统要实现的主要功能为: 前台显示新闻部分 用户登录区 显示最热门的前几条新闻 显示推荐的前几条新闻 显示最新的前几条新闻 搜索新闻功能 显示所有新闻分类(即部门) 按分类/部门显示其下的所有新闻 新闻详
31、细信息浏览阅读 图片新闻(自动生成缩略图)以滚动形式在首页显示且只显示前几条 网站友情链接(可在管理中添加设置) 网站公告可显示发布了新闻但没通过审核的一些相关通知等 后台管理部分 登录验证 根据权限显示相应的管理目录 添加、修改和删除新闻 管理发布新闻 管理审核新闻 分类管理 用户管理 网站风格设置、系统设置等3.2. 系统结构图从功能描述的内容可以看到,本系统主要分为5类模块,具体情况参见图21.图3-1 系统结构图从系统功能上可以分为4个模块。图3-2 系统功能图4. 系统设计4.1. 系统设计4.1.1. 数据库访问在应用程序的设计中,数据库的访问是非常重要的,我们通常需要将对数据库的
32、访问集中起来,以保证良好的封装性和可维护性。在.Net中,数据库的访问,对于微软自家的SqlServer和其他数据库(支持OleDb),采用不同的访问方法,这些类分别分布于System。Data。SqlClient和System。Data。OleDb名称空间中.微软后来又推出了专门用于访问Oracle数据库的类库.我们希望在编写应用系统的时候,不因这么多类的不同而受到影响,能够尽量做到数据库无关,当后台数据库发生变更的时候,不需要更改客户端的代码。有的时候,为了性能和其他原因,我们也希望提供对数据库访问的缓存,特别是数据库连接的缓存.虽然微软给我们内置了数据库缓存,但是,自己控制缓存,无疑可以
33、提供更大的灵活性和效率4.1.1.1. 数据库访问接口 interface IDBHelper int ExecuteSql(string cmdText, string connectionString); object GetSingle(string cmdText,string connectionString); DataSet Query(string cmdText, string connectionString); / summary / 数据库类型 / /summary public enum DBType SQL, Oledb / summary / 结果类型 / / p
34、aram name=connectionString”连接字符串 / param name=”cmdTextSQL语句/param / public int ExecuteSql(string cmdText, string connectionString) using (SqlConnection connection = new SqlConnection(connectionString) using (SqlCommand cmd = new SqlCommand(cmdText, connection)) try connection。Open(); return cmd。Exec
35、uteNonQuery(); finally connection。Close(); connection。Dispose(); / summary / 获取结果集的第一行,第一列 / / param name=connectionString”/param / param name=cmdText”/param / returns/returns public object GetSingle(string cmdText, string connectionString) using (SqlConnection connection = new SqlConnection(connect
36、ionString) using (SqlCommand cmd = new SqlCommand(cmdText, connection) try connection.Open(); object obj = cmd。ExecuteScalar(); if (Object。Equals(obj, null)) | (Object。Equals(obj, System。DBNull。Value)) return null; else return obj; finally connection。Close(); connection.Dispose(); / /param / param name=”cmdText”/param / returns/returns