基于aspnet的新闻发布系统的设计与实现内容摘要:
3。 35 1 1 绪 论 新闻发布系统概述 新闻发布系统( News Management System)又称为信息发布系统 , 是一个利用计算机网络为平台构建的新闻发布体系 , 它将网站上的新闻发布等重要信息集中管理 , 并通过信息的某些性质进行分类 , 最后系统化 , 标准化的发布到网站上的一种网站应用程序 ,网站信息通过一个简单的界面加入数据 , 然后通过已有的网页模版格式与审核流程发布到网站上。 它的出现大大减轻了网站更新维护的工作量 , 通过网络数据库的引用 , 将网站的更新维护工作简化到只需录入 文字和上传图片 , 从而使网站的更新的速度大大缩短 , 从而大大加快了信息的传播速度。 国内外新闻发布系统研究现状 目前 , 新闻发布系统的开发技术已经十分成熟 , 用到的技术有很多 , 比方 ASP技术 ,php技术 , jsp技术 , .技术等 , 成熟的新闻发布系统有很多 , 如著名的 V7 Content Mangement Suite(西门子公司采用的系统 ), InterwovenTeamSite(Cisco 采用的系统 )以及开源的产品也得到广泛的应用 , 如 OpenCMS, ZopeContent Management Framework等。 开发工具选用及介绍 传统的新闻发布系统主要有两种 , 一是静态 HTML 页面 , 更新信息时需要重新制作页面后上传 , 同时还要修改相应的链接 , 这种方式因效率太低已不多用。 二是基于 ASP和脚本语言 , 将动态网页和数据库相结合 , 通过应用程序来处理新闻 , 这是目前较流行的做法 , 但是由于 ASP 本身的局限性是的系统有一些不可克服的缺陷 , 而采用 技术 , 在系统性能上就有了很大的提高 , 主要体现在一下几个方面: (1) 页面不同于 ASP 页面 , 它只需要一次编译不需要重新编译 , 直到该页面被重新修 改或 WEB 程序重新启动为止 , 使得多次访问速度有了极大的提升。 (2)。 管理员不必关掉网络服务器或者甚至不用停止应用程序的运行就可以更新应用文件。 (3)“ codebehind”方式编写代码 , 使系统更易于编写 , 结构更清晰 ,降低了系统的开发与维护的复杂度和费用。 2 基于 的优点 , 所以我选择了 Visual Stiduo 2020 作为开发工具 , 并结合 Sql Server 2020 作为后台数据库。 同时 用 Macromedia Dreamweaver MX 2020 进行页面的 设计。 2 基于 .NET 平台的相关技术 .NET 简介 是一个用于构建、运行和体验下一代分布式应用程序的平台 , 它是跨客户端、跨服务器的开发工具。 它由以下几个部分组成: (1).NET 框架编程模型 , 借助它开发人员能够构建 WEB 应用程序、智能客户端应用程序和 XML Web Service 应用程序 , 并利用诸如 SOAP、 XML 和 HTTP 标准协议以编程方式通过网络开放其功能。 (2)开发工具 , 比如 Visual , 该工具为用户在 .ET 框架下进行 编程提供了一个迅速开发应用程序的集成环境。 (3)一组服务器 , 包括 Windows 20 SQL Server 和 BizTalk Server, 可集成、运行、操作和管理 XML Web 服务和应用程序。 (4)客户端软件 , 比如 Windows XP、 Windows CE 和 Microsoft Office XP. Sql Server 2020 数据库的新特点 随着 Mierosotf SQL Sevrer 2020 BeatZ 的发布 , 数据库开发的方式正在改变中。 数据库开发工作正前所未有的越来越集成 , 所需要 的所有工具都触手可及。 (1)NET Framewokr 集成 随着 Mciorostf SQL Sevrer 2020 Beat2 的发布 , 数据库编程人员现在可以充分利用 Framewokr 类库和现代编程语言来开发数据库应用。 通过集成的 CLR,你可以用 .NET Framework language 里的 Visual 和 C中面向对象的结构、结构化的错误处理、数组、命名空间和类来编写存储过程、函数和触发器。 此外 , .NET Framework 所提供的几千个类和方法也扩展了服 务器功能 , 使你能够更容易的在服务器端使用。 许多之前我们用 T 一 SQL 难以实现的任务现在可以更容易的用托管代码实现。 同时 , 系统还新增了两个数据库对象类型 :聚合和用户自定义类型。 你现在能够更好的利用己掌握的知识和技能编写 in 一 proeess 代码。 总之 , SQL Sevrer 2020 Beta2 能够使 3 你的数据库服务器更方便地在后台执行适当的计算和操作。 (2)XML 技术 XML 己经成为一种存储和交换数据的通用格式 , 是那些带标记的、结构化或半结构化信息的常用选择 , 如 :文本 (带有标示文档结构和重点的标记 ), 嵌套对象 (结 构化的 ), 异类数据 (半结构化的 )。 XML 也是一种用来在网络上不同应用程序间散布数据的重要的、被广为接受的标准。 Mierosotf SQL Sevrer2020 支持通过 Mierosotf SQL XML来使用 XML, 它允许把 关系型数据转换为 XML, 把 XML 数据存在关系型表中。 Microsoft SQL Sverer 2020 Beta2 通过把 XML 作为一类数据类型来实现这一功能 , 此外 , 它还提供了针对 XML 文档的新的查询语句和定位修改。 (3)新的应用程序框架 SQL Sevrer 2020 引入了新的 SQL Sevrer 应用程序框 :SevrieeBorker。 SevrcieBorker 是一个分布式应用程序框架 , 它在数据库到数据库级上提供了可靠的异步通讯。 数据访问技术 是一组用于和数据源进行交互的面向对象类库。 通常情况下 , 数据源是数据库 , 但它同样也能够是文本文件、 Excel 表格或者 XML 文件。 允许和不同类型的数据源以及数据库进行交互。 然而并没有与此相关的一系列类来完成这样的工作。 因为不同的数据源采用不同的协议 , 所以对于不同的数据源必须采用相应的协议。 一些老式的数据 源使用 ODBC 协议 , 许多新的数据源使用 OleDb 协议 , 并且现在还不断出现更多的数据源 , 这些数据源都可以通过 .NET 的 类库来进行连接。 提供与数据源进行交互的相关的公共方法 , 但是对于不同的数据源采用一组不同的类库。 这些类库称为 Data Providers, 并且通常是以与之交互的协议和数据源的类型来命名的。 包含的对象: SqlConnection 对象 和数据库交互 , 你必须连接它。 连接帮助指明数据库服务器、数据库名字、用户名、密码 , 和连接数据库所需要的其它参数。 connection 对象会被 mand 对象使用 , 这样就能够知道是在哪个数据库上面执行命令。 与数据库交互的过程意味着你必须指明想要发生的操作。 这是依靠 mand 对象执行的。 你使用 mand 对象来发送 SQL 语句给数据库。 mand 对象使用 connection 对象来指出与哪个数据库进行连接。 你能够单独 4 使用 mand 对象来直接执行命令 , 或者将一个 mand 对象的引用传递给SqlDataAdapter, 它保存了一组能够操作下面描述的一组数据的命令。 sqlDataReader 对象 许多数据 操作要求你只是读取一串数据。 data reader 对象允许你获得从 mand 对象的 SELECT 语句得到的结果。 考虑性能的因素 , 从 data reader 返回的数据都是快速的且只是 “ 向前 ” 的数据流。 这意味着你只能按照一定的顺序从数据流中取出数据。 这对于速度来说是有好处的 , 但是如果你需要操作数据 , 更好的办法是使用 DataSet。 DataSet 对象 DataSet 对象是数据在内存中的表示形式。 它包括多个 DataTable 对象 , 而 DataTable包含列和行 , 就象一个普通的数据库中的表。 你甚至能够定义表之间 的关系来创建主从关系( parentchild relationships)。 DataSet 是在特定的场景下使用 ―― 帮助管理内存中的数据并支持对数据的断开操作的。 DataSet 是被所有 Data Providers 使用的对象 , 因此它并不像 Data Provider 一样需要特别的前缀。 SqlDataAdapter 对象 某些时候你使用的数据主要是只读的 , 并且你很少需要将其改变至底层的数据源。 同样一些情况要求在内存中缓存数据 , 以此来减少并不改变的数据被数据库调用的次数。 Data adapter 通过断开模型来帮 助你方便的完成对以上情况的处理。 当在一单批次的对数据库的读写操作的持续的改变返回至数据库的时候 , Data adapter 填充( fill)DataSet 对象。 data adapter 包含对连接对象以及当对数据库进行读取或者写入的时候自动的打开或者关闭连接的引用。 另外 , data adapter 包含对数 SELECT, INSERT, UPDATE和 DELETE 操作的 COMMAND 对象引用。 三层结构 所谓三层体系结构 , 是在客户端与数据库之间加入了一个“中间层” , 也叫组件层。 这里所说的三层体系 , 不是指物理 上的三层 , 不是简单地放置三台机器就是三层体系结构 , 也不仅仅有 B/S 应用才是三层体系结构 , 三层是指逻辑上的三层 , 见 图 1: 图 1 三层结构模拟图 5 即使这 三个层放置到一台机器上。 三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。 通常情况下 , 客户端不直接与数据库进行交互 , 而是通过 COM/DCOM 通讯与中间层建立连接 , 再经由中间层与数据库进行交互。 可以使用 .NET 平台快速方便的部署三层架构。 革命性的变 化是在网页中也使用基于事件的处理 , 可以指定处理的后台代码文件 , 可以使用 C, VB, J作为后台代码的语言。 .NET 中可以方便的实现组件的装配 , 后台代码通过命名控件可以方便的使用自己定义的组件。 显示层放在 页面中 , 数据库操作和逻辑层用组件来实现 , 这样就很方便的实现了三层架构。 所以 , N 层架构的核心是提供可规模化特性 , 一方面是从服务负载上可规模化 , 能同时为极大规模的用户同时提供服务。 另一方面是服务功能上的可规模化 , 可形成极大规模的软件群系统 , 各分系统可以共享信息、服务 , 形成企业级的信息高速公路。 三 层可 以分别放在各自不同的硬件系统上的 , 所以灵活性很高 , 能够适应客户机数目的增加和处理负荷的变动。 例如 , 在追加新业务处理时 , 可以相应增加装载功能层的服务器。 因此 ,系统规模越大这种形态的优点就越显著。 另外 , N 层结构从逻辑上相互独立 , 某一层的变动通常不影响其它层 , 具有 很高的可重用性 , 除此以外 , N 层结构还有以下优点 : .利用单一的访问点 , 可以在任何地方访问站点的数据库 ; .对于各种信息源 , 不论是文本还是图形都采用相同的界面 ; .所有的信息 , 不论其基于何种平台 , 都可以用相同的界面访问 ; .减少整个系统的成本 ; .维护升 级十分方便 ; .使系统具有更好的扩展性; .具有良好的开放性 ; .进行严密的安全管理 ; .系统管理简单 , 可支持异种数据库 , 有很高的可用性。 C 的新特性 C 是微软针对新一代 .NET 平台开发的语言 , 在 C 的基础上添加了泛型、匿名方法、迭代器、委托类型以及其他诸多新特性。 (1).在 C 中 , 泛型、匿名方法、 IEnumerable 接口和匿名方法的合作 , 使很多 6 的编程任务变得非常的简单。 (2).迭代器与泛型有着本质上的不同 , 泛型是相对 微软在 LI 上面又添加了一些指令来实现。 而迭 代器则是在编译器这个层次去实现的 , 也就是说 C2, 0 中的迭代器的特性并没有靠引入 LI 来实现。 类似 foreach(srtings int c)这样的调用方式 , 一般就是一个迭代器 , 使用 C 中的迭代器会使用代码变得很简单。 (3).deelgaet 经常被人用来与回调相比较 , 其实两者在某种程度上由很多共同点。 不过 delgeate 有很多更加强大的地方。 首先 , delgeaet 中可以注册任意多个回调 , 在一个 delgeate 被调用的时候 , 己经注册的过程将会被逐个调用。 其次 , delgeate 允许注册一个对象的方法 , 而不 像 C++中指可以使用静态方法或者全局方法作为函数指针 , 提供了更多的灵活性 , 同时也暗示我们 , delgeate 中按照某种方式保存了。 在 C 的匿名delgeate 中 , 我们甚至可以访问当前匿名 delgeate 的上下文变量。 3 系统分析与总体设计 很多网站都提供新闻栏目 , 例如搜狐、新浪等著名网站的新闻专栏。 许多企业和个人网站也需要定期发布一些关于企业或网站的新闻。 因为网络中新闻发布的频率非常高 , 如果使用静态网页作为新闻页面 , 则维护工作将非常繁琐 , 管理员每天需要制作大量的网页 , 从而浪费很多时间和精力。 使用新闻 发布及管理系统可以使新闻发布和管理变得很轻松 , 管理员只需设置标题、内容和图片等新闻就可以了 , 系统将自动生成对应的网页。 本文将对新闻发布及管理系统进行系统分析与总体设计。 系统功能模块划分 从功能描述的内容可以看到 , 本系统 可以实现 6 个完整的功能。 我 们根据这些功能 ,设计出系统的功能模块 , 见图 2: 7 图 2 新闻发布 系统功能模块示意图 新闻发布及管理系统的功能模块之间的关系 见 图 3 所示。 图 3 新 闻发布 系统的功能模块关系图 本系统 在 初始化时 , 有一个默认的“ 管理员”用户 tyh, 由程序设计人员手动地添加到数据库中。 tyh 用户可以创建用户、修改、 删除用户 信息 、给用户设置权限 ; 权限有两种 , 一个是管理员 , 另一个是普通用户 , 普通用户 只能修改自己的用户 信息 , 发布新闻 , 且不能登录后台管理系统。 用户管理功能模块的关系 见 图 4 所示。 新闻发布系统 新闻类别管理 新闻管理模块 新闻查询模块 评论管理模块 系统用户管理 后台系统 提供数据 新闻类别管理 前台系统 数据库 基本信息发布 新闻查询管理 浏览新闻 发表网友评论 8 图 4 用户管理功能模块的关系图 系统流程分析 多用户系统的工作流程都是从用户登录模块开始 , 对用户的身份进行认证。 身份认证可 以分为以下两个过程: (1)确认用户是否是有效的系统用户。 (2)确定用户的类型。 第 1 个过程决定用户能否进入系统。 第 2 个过程根据用户的类型决定用户的操作权限 , 从而决定用户的工作界面。 本系统分为前台系统和后台系统两个部分。 前台系统不需要进行身份认证 , 任何人都可以通过浏览器阅读已经发布的新闻、发表网友评论。 后台 管理 的流程分析 见 图 5 所示。 tyh 用户拥有所有的权限 , 普通用户 只能 发布 自己的 新闻 , 修改自己的信息。 系统用户信息管理 修改 tyh 用户的密码 创建、修改、删除普通用户信息 修改自身的信息,发布新闻 tyh 用户 普通用户 9 图 5 新闻发布系统后台管理 流程分析 4 数据库结构设计与实现 创建数据库 首先创建一个数据库 news2020, 用来保存本系统的所有数据。 创建数据库的脚本代码如下: CREATE DATABASE news2020 GO 可以在 SQL 查询分析器中执行该语句 , 创建数据库。 数据库逻辑结构设计 本系统定义的数据库中包含以下 4 个表:新闻类别表: BigClass、新闻基本信息表:news、 评论信息表: answer 和用户信息表: admin。 下面分别介绍这些表的结构。 用户登录 失败报错 管理所有用户的信息 管理新闻类别,发布信息,所有新闻信息的管理 管理自己的信息 发布新闻。 tyh 普通用户 管理页面首页 10 (1)新闻类别表 BigClass 新闻类别表 BigClass 用来保存新闻类 别数据 , 结构 见 表 1 所示。 表 1 新闻类别 表 BigClass 的结构 编号 字段名称 数据结构 说明 1 id int 新闻类别编号 2 name varchar (50) 新闻类别名称 3 flag char(10) 是否显示。基于aspnet的新闻发布系统的设计与实现
相关推荐
7 浏览网站商品页面。 搜索商品页面。 查看消费者购物车。 系统数据 Caching 技术模块 在 B/S 结构的系统中,为了提高应用程序每次向服务器请求的效率,最好的方式就是采用数据缓冲技术。 在本系统中采用了两种缓冲技术 :数据库缓冲技术和 页面输出缓冲技术,同时还在系统中提供缓冲监控机制。 页面输出缓冲技术:主要在每个页面输出时缓存页面的数据。 Data and
键值 备注 UserId int 4 否 是 用户 ID UserName nvarchar 50 是 否 用户名称 UserPwd nvarchar 50 是 否 用户密码 UserRole nvarchar 50 是 否 用户角色 UserRealName nvarchar 50 是 否 用户真实姓名 Question nvarchar 50 是 否 用户提问 Answer nvarchar
,所以采用分层的形式给出,其中数据流父图,即第一层,如图31所示。 图31 数据流图第一层以上为本系统的第一层数据流图,它描述本系统的基本数据流向信息,而制作本系统是围绕着前台的企业职位管理、企业人才管理、企业信息管理与个人用户的个人职位收藏及申请、管理简历、个人信息管理、网站管理员的后台维护这七大模块来制作的。 然而在这几大模块中企业和用户之间的交流部分数据流向相对复杂
aScript 部分 将 构成网页发送到 终端 用户的浏览器 上 [3]。 总的来说, 有下列几处优点: 基于 的个人博客网站设计与实现 4 ( 1) 编辑代码意味着应用程序能 够更快地运行,设计时能够捕捉更多错误在开发阶段。 ( 2) 重要的是它改进了运行时错误的处理,用 trycatch 代码块来进行异常处理。 ( 3) 大量的控件和类库便于应用程序的快速创建,加上在 Web
荡器,使用方便,可靠性高。 只需外接不同阻值和电容值的电阻电容即可实现不同宽度的脉冲输出。 具体电路如图 22 所示。 图 22 发射脉冲产生电路 低通滤波器的设计 超声波在人体内传播的过程中,遇到不同的界面时,就会发生部分反射和部分 透射。 当两个反射的分界面的性质相同时,反射和透射的百分率是相同的。 因此,相同性质的分界面处于相同深度时,反射回来的超声能量是相等的。
humb C编译器 Armcpp属于 ARM C++编译器 Tcpp属于 Thumb和 C++共有的 编译器 Armasm属于 ARM和 Thumb共有 的汇编器 : armlink 是 ARM 的 链接器。 该命令 能够对任意数量的 目标文件 进行编译 和 任意数量数据 库文件 的 链接 关系 , 然后得到 可执行 的 文件, 还能是众多 目标文件 指向的目标文件的局部。 [3] :