《基于.NET网络投票系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于.NET网络投票系统的设计与实现.doc(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目 录摘要2前言3第一章介绍41.1 的优势41.2 ASP应用程序的安全性61.3 小结7第二章 应用程序的体系结构82.1 传统的C/S模式82.2 三层架构模型82.3 开发三层架构应用程序的方法92.4 小结10第三章开发数据库技术113.1 基本概念11数据库访问流程113.3 小结12第四章 网络投票系统的设计与实现134.1 系统需求分析134.2 投票系统的组成模块134.3 系统操作流程144.4 系统设计与实现15第五章 总结21参考文献22摘 要利用网络和数据库技术,结合目前互联网宽带的普遍接入的新形势,让用户通过互联网进行投票,如投票选举,可以大大提高投票率,同时节省了
2、调查问卷等有形物资的花费,以及投票人和检票员的时间。目前各种网站的投票调查模块,其后台数据库的Web操作较多采用ASP或是PHP技术结合数据库的方法实现技术结合数据库的方案,其中重点介绍了如何实现ASP.NET连接各种数据库的Web功能。并对ASP.NET技术与数据库连接方法进行介绍、分析,突出了C#平台和增强数据库安全的优势,而且简化了Web应用系统的工作。关键词:ASP.NET 网络投票 数据库前言随着计算机网络技术的深入发展,计算机技术的应用也日益普及,涉及人们工作、学习和生活的方方面面,大大提高了效率。信息资源也得到了最大程度的共享,促进了社会各个领域的发展。例如,网络投票系统是应用计
3、算机网络应用的一个方面,能够及时收集人们对于某个事物的看法、建议,而且是一种民主和自由形式的体现。在线投票功能是网站应用程序最常用的功能之一,也是网站应用程序开发常用的功能模块。当网站管理员或用户提出一些新的想法与建议或者出现一种新的产品是否满足用户或者客户的需求,另外网站还可以通过在线投票功能做一些实际性的调查工作。本课题介绍的网络投票系统实现了投票信息结果的图形化显示,对投票情况的实时查看。当今在各种大大小小的网站中,各种类型的Web投票调查模块基本上是基于C/S体系结构,使用ASP技术开发。但是为了加快访问速度以及增强模块操作的安全性和实现模块的可移植性,后台数据库逐渐由C/S模式向B/
4、S模式过渡。相比较而言,B/S模式有以下优势:应用程序在部署、升级、维护以用在服务器端进行配置时,它提高了系统的安全性。脚本语言开发也逐渐由ASP技术向JSP、ASP.NET技术发展。本文中,作者主要完成服务器端的用户管理、投票项管理功能;投票主题管理;编辑投票项;编辑投票主题功能模块的设计、实现与完善以及整个实验网站的组织建立和测试工作。第一章 ASP.NET是Microsoft.NET的一部分,作为战略产品,它不仅是Active Server Page(ASP)的下一个版本,还提供了一个统一的Web开发模型,其中包括了开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很
5、大程度上与ASP兼容,同时它还提供一种新的编程模型和结构(Code behind),可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。ASP.NET提供了稳定的性能、优秀的升级性、更快速的开发、更简便的管理、全新的语言以及网络服务。贯穿整个A5PNET的主题就是系统帮用户做了大部分不重要的琐碎的工作。ASP.NET是一个己编译的、基于.NET的开发环境,可以用任何与.NET兼容的语言来构建应用程序。另外,任何ASP.NET应用程序都可以使用整个.NET Framework。开发人员可以非常方便地应用这些特性,其中包括托管的公共语言运行库环境、类型安全,以及灵活使用各种软件开发技术:面向
6、对象、对象组件、面向服务等。快速发展的分布式应用也需要更快速、更模块化、更易操作、更多平台支持和重复利用性更强的开发,需要一种新的技术来适应不同的系统,网络应用和网站需要提供一种更加强大的可升级的服务。这些都是ASP.NET力所能及的。同时也相继出现了Visual Studio 2005、Visual Studio 2008版本,Visual Studio 2010。毋庸置疑,它们为开发人员提供了更多的新特性以便能更快速便捷地构建应用程序。1.1 ASP.NET的总体框架如1-1图所示,主要包括以下几部分:Web窗体页面、ASP.NET服务器组件、后台逻辑代码文件、DLL编译文件。Web窗体页
7、面包括HTML元素、服务器组件,后台逻辑代码文件包含了窗体页面的应用逻辑,DLL编译文件传送动态的HTML到Web服务器。其设计的主要目标是:(1)代码更清晰(2)提高可部署性、可伸缩性、安全性用可靠性(3)为不同的浏览器和调和提供更好的支持(4)支持一种全新的Web应用程序Server ControlsHTML ControlsWeb ServicesSecurityEtc.WebForm1.1.1 多语言支持ASP使用的是脚本语言,也就是直译式语言,只有在ASP被调用时才通过脚本引擎一边检查语法,一边执行,所以在程序执行前是无法知道程序有没有错误的。另外,脚本语言中无法声明数据类型,所以A
8、SP中所有的变量预设的数据类型都是Variant,这些都引起程序员极大不便。而ASP.NET的多语言支持特性,将程序员从不够严谨的脚本语言中解放出来,ASP.NET使用的是编译式语言,支持的语言包括:Visual Basic .NET、C#、C+、JScript、COBOL、Pascal、Perl及Small Talk等,而程序员也不需要掌握所有语言,却可以轻松调用其他程序员开发的第三方组件,以达到实现所需功能的目的。1.1.2 效率当客户端第一次调用ASP.NET页面时,会经过一次复杂的编译过程,编译生成MSIL文件,并存储在本地机上,然后退过JIT(Just in time)编译器进行再编
9、译,成为优化的CLR代码,这样除了第一次要经过复杂编译外,以后每次执行都会在内存中保留这份机器码作为快取,使网页执行速度大幅提高。1.1.3 大量工具箱和函数库的支持在Visual Studio的开发环境中,ASP.NET具有丰富的工具箱和设计器,比如所见即所得的编辑方式、支持拖放的服务器控件以及动态的配置管理。.NET Framework还提供了大量现成的基类函数,程序员可以直接调用这些函数。1.1.4 超强的扩展性ASP.NET允许程序员开发自己的插件,而且任何一个组件都可以被程序员自己开发的组件扩展或替换。1.1.5 易用性允许建立用户接口,这样可以把代码和程序结构分离,写程序的人只需要
10、考虑程序的结构,而不需要考虑怎样去书写代码。1.1.6 配置管理方式使用一种基于文本格式、等级式的配置系统,这种方式使得应用服务器环境和Web应用的设置更加简单,新设置将不再需要本地管理工具。服务器上控件的替换和修改也不再需要重启服务器。1.2 ASP应用程序的安全性安全性是对用户的身份进行验证,并对通过验证的用户按照为其授予的访问权限来确定用户是否可以访问某种资源的一个过程。ASP.NET与IIS、.NET Framework和操作系统的底层安全性服务相结合,可以实现多种身份验证和授权机制,如图1-2所示。一个ASP.NET应用程序的总的安全性是由以下3个不同层级组成。S级将一个有效的安全性
11、令牌(Security Token)与请求的发送者相关联。该安全性令牌根据当前的IIS身份验证机制确定。2.ASP.NET工作进程级确定工作进程中服务请求的线程的身份。如果启用了假冒设置,可能会改变与该线程关联的安全性令牌。根据正在使用的进程模型,其安全性令牌由配置文件或IIS原数据库中的设置决定。3.ASP.NET管道级获得使用应用程序的特定用户的身份。该任务的完成方式取决于配置文件中用于身份验证和授权的应用程序设置。大多数T应用程序的常见设置是使用窗体验证。图1-2 安全体系结构1.3 小结ASP.NET从原来的ASP结构体系上跨出了一大步,其整个构造体系使开发结构化的应用程序变为可能。W
12、eb表单带来了一种更加直接和易于使用的开发模式:服务器控件增加了提供公共功能的能力,从而使扩展和加强现有功能变得容易;数据捆绑使创建数据约束型应用程序变得十分简单。ASP.NET不但具有许多很强的新功能,而且为用户提供了一个用于开发Web应用程序的真正框架。安全性是计算机网络安全的重要环节,也是计算机网络安全体系结构的基础性组成部分,通过采用各种安全策略,才能更好地实现网络系统的安全性。第二章 应用程序的体系结构随着Web技术的出现,时期网络中的集中计算逐渐被分布式计算所代替。Web技术是一种分布式计算技术,使用这种技术构建企业应用时,通常需要开发大量的程序,把这些程序分布在不同的计算机上,在
13、应用中承担不同的职责。本章介绍三层结构应用程序的概念和优点,并结合分析如何建立三层结构的ASP.NET应用程序。2.1 传统的C/S模式在传统的应用程序开发中,C/S(Client/Server)二层体系结构得到了广泛的应用。二层体系结构的特点是应用程序逻辑通常分布在客户和服务器两端。客户发出对数据资源的访问请求,服务端将对该请求的响应结果返回客户端。每一个客户端都都存在数据引擎,并且每个客户端与数据库服务器建立独立的数据库连接(DB Connection)。数据表示层逻辑计算与数据处理放在同一层客户机应用服务器数据库服务器图2-1 客户机/服务器模式C/S结构本身存在着很多体系结构上的问题,
14、比如:一旦用户的应用需求发生变化,客户端和服务器端的应用程序都需要进行修改,这给应用维护和升级带来了极大的不便:当客户端数量激增时,服务器端的性能会因为负载过重而大大衰减;大量的数据传输增加了网络的负载等等。2.2 三层架构模型按照Web应用程序的功能要素的基本要求,把应用程序架构分为如下三层:表示层(Presentation Layer):表现层通过与用户交互界面,调用业务层接口传递用户请求信息以及获取所返回的信息。业务层(Business Tier):业务层用于访问数据层,从数据层取数据、修改数据以及删除数据,并将结果返回给表现层。该层除了实现应用程序功能外,还包括用户数据的验证及各类计算
15、等。数据层(Data Tier):数据层是数据库或者数据源,如SQL Server、Access、Oracle数据库或XML文件。Web应用程序的三层架构模型如图2-2所示:处理用户请求访问数据库表现层业务层数据层接受用户请求数据库图2-2 Web应用程序分层2.3 C#业务逻辑组件数据访问组件Web服务器应用服务器数据库服务器ASP.NET Web窗体数据库ASP.NET可以使用.NET平台快速方便地开发和部署三层架构应用程序。表现层通过Web窗体来实现,包括.ASPX文件及相应的后台.CS文件。业务层通常包括两个组件(也称为两个子层),业务逻辑层(Business Logic Layer,
16、BLL)和数据访问层(Data Access Layers,DAL)。2-3所示:图2-3三层Web应用程序架构2.4 小结ASP.NET三层架构是将Web应用程序分成数据表示层、逻辑计算层、数据处理层,其解决方案是对这三层进行明确分割,并在逻辑上使其独立。这样大大提高了系统模块的复用性,缩短开发周期,降低维护费用。其次,系统的扩展性大大增强。由于系统是模块化的,使得系统很容易扩展,一方面可以将系统升级为更大、更有力的平台,同时也可以适当增加规模增强系统的网络应用。开发数据库技术数据访问已经成为现代软件开发中一个主要的任务,对于单独工作的应用程序或者是基于Web的应用程序都是如此。ADO.NE
17、T技术作为.NET框架中的一部分提供了一个解决许多和数据访问有关问题的通用解决方案。创建基于Web的应用程序时我们可以在ASP.NET中使用ADO.NET技术来通过网络和Web进行数据访问。 基本概念ADO.NET技术是一个基于标准的面向创建分布式数据共享应用程序的编程模型,是ADO(ActiveX Data objects)技术的延伸和发展,但是它带来了比AD0技术更为优越的互操作性、可维护性、可编程性和更出色的性能。ADO.NET包含了众多的类,程序员通过使用这些类来获得数据访问服务。这些类位于.NET类库中,可以被任何基于.NET设计的应用程序使用,包括前端的数据库客户程序、中间层的各种
18、应用程序、工具、语言或者浏览器调用的业务逻辑对象。ADO.NET使用XML作为一般的数据传输格式,因此,只要接收数据一方使用一个XML解析器便可以解析出数据,具有更优越的互操作性。为了将数据访问和数据操纵分离开来,ADO.NET使用了两种组件:DataSet对象和.NET数据提供者。DataSet对象在ADO.NET中处于核心地位,它提供了一个与数据来源无关的数据表示方式,可以表示存储和管理来自远程或本地数据库XML文件或数据流甚至应用程序的局部数据。一个DataSet对象包含了一个DataTable的集合属性,用来放置一个或多个DataTable对象。DataTable对象对应于关系数据库中
19、的表的概念,用来容纳以行列形式组织起来的数据和主键约束关系等信息。.NET数据提供者是体系中的另一个核心元素,.NET程序员使用该元素中包含的一些子元素来实现对实际数据的操纵。这些操纵的结果或者被直接处理,或者被放到DataSet对象中。.NET数据提供考是一个数据源和代码间的一个尽可能小的层,从而在不牺牲功能的前提下提高性能。3.2 ADONET对数据访问过程分成了几个层次的抽象,每个层次对应了一系列类对象。直接和数据源交互的对象是Connection对象,所有对数据源的操作命令存储过程参数和数据都是在一定的Connection对象上面运行,所有向数据源发送的送货请求和在数据源与应用程序之间
20、交互的数据都在其上通过,因此为了访问数据源中的数据,首要做的就是建立起一条合适的Connection通道,不仅如此,还应该向数据源提供合适的信息。最后真正在内存中容纳了数据的对象是DataSet对象,DataSet对象使用DataAdapter对象宋代理同Connection对象和Command对象之间的交互,这样DataAdapter对象可以为DataSet对象隐藏掉和Connection及Command对象之间的交互细节,从而保证了DataSet对象的数据源无关性。DataAdapter还负责DataSet对象中的数据和数据库中的数据的同步问题,这是因为DataSet对象提供的是无连接的数
21、据访问服务。另外,DataSet对象是与数据源无关的,而且可以容纳多个表,只要使用不同的Connection和Command对象,在数据库向D血Set对象传送完数据后,如果不再需要Connection通道和Command对象,它们便可以关闭,因为传送后DataSet对象便与数据源断开了。其流程大致可以总结如下:(1)创建一个数据库链路;(2)请求个记录集合;(3)把记录集合暂存到DataSet;(4)如果需要,返回第2步;(DataSet可以容纳多个数据集合)(5)关闭数据库链路;(6)在DataSet 上作所需要的操作。3.3 小结ASP.NET的许多优越性为Web服务提供了一种无疑组合、跨
22、平台、跨语言的应用程序的强大方式,造就了一类新的更加动态更具伸缩性的应用程序。这种应用程序能够更好地满足客户的商业需求。第四章 网络投票系统的设计与实现4.1 系统需求分析4.1.1 目标在线投票功能是网站应用程序最常用的功能之一,也是网站应用程序开发常用的功能模块。当网站的管理员或用户提出一些新的想法与建议或者出现一种新产品时,他们可能需要通过用户或者客户的投票方式来确定这些新的想法、建议或者新的产品是否满足用户或者客户的需求,另外,网站还可以通过网站在线投票功能做一些实际性的调查工作。随时了解市场是一个企业拥有强大竞争力的必须品,所以在线投票系统可以解决企业的难题,不受地区限制,不受人手压
23、力的限制,随时了解产品的市场效应,增强自己的竞争力;此系统将以图形化的界面来显示投票结果,一目了然地回馈客户的需求信息;.2用户特点本系统的用户只需懂得运用互联网络者均可以使用,此系统在网站中的使用频度预计非常的频繁。.3 对性能的要求和约束该系统属于实用型网站,需要对数据的处理,比如对投票票数的统计并把结果反馈给投票者,故对数据的及时更新要求较高,保证数据的真实性.该系统在任何操作系统下都可以运行,但必须装有SQL2000以上版本的数据库。4.2 投票系统的组成模块该系统主要由以下六个模块组成:登陆注册模块、管理员模块、客户模块、投票模块、留言簿模块。如下图4-1所示:投票系统登录注册模块投
24、票模块管理员模块留言模块客户模块图4-1 系统组成图4. 客户模块客户模块主要功能是添加投票项目信息,如投票主题、选项用系统配置要求。4. 留言簿模块留言簿模块主要是投票者对于本系统提出问题,包括留言和管理员回复模块。4. 管理员模块管理员模块是指管理员对项目进行的管理模块,包括项目的管理,选项的管理以用系统设置的管理,可以对项目进行删除、编辑,选项的删除,更新和添加,系统配置的删除和更新。4.登录注册主要为管理员和客户进入相应权限的桥梁。4.4.3 系统操作流程图4-2 系统流程图4.4 系统设计与实现图4-3 系统界面4.4.1 登录、注册模块设计与实现(1)功能描述管理员和客户登录入口,
25、根据身份从而跳转到相应页面,注册为客户提供注册功能。输入处理输出登录基本信息系统登录处理登录结果图4-4 登录流程输入处理输出图4-5 注册流程(2)界面设计与实现图4-6 注册窗口4.4.2 投票模块的设计与实现(1)功能描述投票模块为游客选择投票本项目,并根据项目模式跳转到相应投票页面进行投票,对系统配置进行检测,并可以查询结果。1投票项目信息2选项信息1模式判断2系统配置检测3数据库信息更新返回投票信息输入处理输出图4-7 投票流程(2)界面设计与实现如图4-8所示。图4-8 投票界面4.4.3 留言簿模块的设计与实现(1)功能描述该模块包括留言和回复两个功能。1留言基本信息2回复信息数
26、据库更新返回结果输入处理输出图4-9 留言簿流程(2)界面设计与实现如图4-9,4-10所示。图4-9发表留言图4-10 留言簿界面管理员模块设计(1)功能描述管理员模块为管理员对项目信息的管理,如项目基本信息,选项信息,系统配置信息的所有操作。1项目基本信息2选项信息3配置信息数据库操作返回操作信息输入处理输出图4-11 管理模块流程(2)界面设计与实现图4-12 管理模块界面4.4.5 客户模块设计(1)功能描述客户模块为客户添加项目信息包括投票主题名称,模式和系统配置,并且根据所选模式对选项进行添加。1项目基本信息2选项信息1. 模式更新2. 数据库操作项目全部信息输入处理输出图4-13
27、 客户模块流程(2)界面设计与实现图4-14 客户后台界面第五章 总结由于本人技术有限,本系统界面简洁,功能实现不够完美,故此投票系统在安全和界面设计方面够完善,有待改进。在此次设计过程中,我体会到了设计一个系统应有的设计步骤,在设计之前应该对所要设计的内容有较为深刻的了解,并对用户的要求加以认真分析,并给予了分类,对所分类进行功能模块化设计,画出了结构图。这样在进行设计时才可以做到有条不紊地进行。参考文献1.Julia Case Bradley, Anita C. Millspaugh. C#.NET程序设计,北京:清华大学出版社,20052.Douglas J.Reilly.赵海,等译. ASP.NET Web应用程序开发新思维,北京:清华大学出版社,20023.罗江华,等. NET Web高级开发,北京:电子工业出版社,20085.郭郑州,崔群法,张银鹤. ASP.NET 3.5从入门到精通,北京:6 孙继磊,刘亮亮. 精通Visual C# 2008语言基础、数据库开发、Web开发.北京:人民邮电出版社,20097RobinDewson,董明等译.SQL Server 2008基础教程,北京:人民邮电出版社,2009
限制150内