




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
福建农林大学本科毕业设计说明书毕业论文设计题目:即时通讯系统设计与实现 专 业: 姓 名:2012年 1 月 1 日I 目录摘要IAbstractII1 引言12 开发工具与环境介绍32.1 Visual Studio概述32.2 Visual Studio发展历程32.3 Visual Studio 2005特点42.3.1集成52.3.2扩展性62.3.3 Microsoft Visual Studio 2005 Team System72.4 SQL Server 2005概述83 系统概述93.1系统需求分析93.1.1功能要求93.1.2性能要求93.2系统概要设计94系统详细设计114.1系统数据库设计114.2功能模块实现144.2.1在线即时通讯系统应用程序的组成144.2.2 用户登录和退出模块144.2.3 好友的分组和管理174.2.4 在线即时通讯平台214.2.5一对一聊天214.2.6 用户信息管理225系统测试275.1登录页面测试275.2添加好友测试275.3一对一聊天测试285.4留言测试285.5保存聊天记录286 结束语306.1毕业设计体会306.2 未完成部分306.2.1群聊功能306.2.2文件传送功能30参考文献1致谢1附录1摘要随着计算机应用技术的快速发展,网络也遍及到我们生活,为我们的学习和工作带来极大的方便。在WEB技术的日益成熟的今天,Browse/Server(简称B/S)结构已成为取代Client/Server(简称C/S)结构的一种全新技术。本系统主要讨论了基于WEB方式的在线即时通讯系统,又称为“WEB QQ”,用户可以以网页的形式实现聊天功能。本系统是在WINDOWS系统下,使用ASP.NET以及SQL Server 2005数据库共同实现的在线即时通讯工具。本系统提供以网页的形式让用户间一对一的聊天,同时将聊天记录以文本的方式保存到本地,用户在聊天之后能在系统管理里看到聊天记录。如果好友不在线,可以给好友留言。用户在系统管理里可以对自己的好友和分组进行管理,根据用户的昵称、ID、用户名来添加好友、修改和删除好友。关键词: WEB开发;三层架构;即时通讯AbstractWith the rapid development of computer application technologies, networks have been pervasive in our daily life with providing convenience for out study and work. Todays WEB technologies have been increasingly mature and Browse / Server structure, as a new technology, has become a substitute for Client / Server structure. This paper mainly discusses how to design and implement a WEB-based Instant Messaging system which is also known as “WEB QQ”and allows users to chat in the webpages. The instant messaging system is implemented by employing both ASP.NET and SQL Server 2005 technologies under the WINDOWS platform. The system provides the functions of allowing users to chat one-to-one in the webpages and saving the chatting messages in a local text file so that users can retrieve them in the system. If friends are not online, users can also leave messages to friends. Users can also manage friends and groups such as adding, modifying and deleting friends according to the users nickname, ID, or name.Key words: WEB Development; Three-Tier Structure; Instant Messaging;II1 引言随着WEB技术的日益成熟,Browse/Server(简称B/S)结构已成为取代Client/Server(简称C/S)结构的一种全新技术。采用该结构软件的优势在于:(1)无须开发客户端软件,维护和升级方便;(2)可跨平台操作,任何一台机器只要装有WWW浏览器软件,均可作为客户机来访问系统;(3)具有良好的开放性和可扩充性;(4)可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。因此该结构在管理信息系统开发领域中获得飞速发展,成为应用软件研制中一种流行的体系结构。跟普通的 WEB 开发模型相比,ASP.NET 提供了以下优点:(1)增强的性能:ASP.NET是在服务器上运行的编译好的公共语言运行库代码。与被解释的前辈不同,ASP.NET可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码之前便显著提高了性能。(2)世界级的工具支持:ASP.NET 框架补充了 Visual Studio 集成开发环 境中的大量工具箱和设计器。WYSIWYG 编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。(3)威力和灵活性:由于 ASP.NET 基于公共语言运行库,因此 WEB 应用程序开发人员可以利用整个平台的威力和灵活性。.NET 框架类库、消息处理和数据访问解决方案都可从 WEB 无缝访问。ASP.NET 也与语言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到 ASP.NET 时保留基于 COM 的开发中的现有投资。(4) 安全性:借助内置的 Windows身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。本文所介绍的即时通讯系统就是一个在Windows环境下用ASP.NET开发的B/S结构系统。即时通讯系统是基于WEB浏览器的IM服务,不需要下载客户端即可获得基本的IM服务,具有WEB产品固有的便利性,同时在WEB上最大限度的保持了客户端软件的操作习惯。WEBQQ将为用户提供基于WEB的IM服务。该产品的推出旨在进一步完善的WEB产品线,丰富“在线生活”平台。“基于WEB的即时通讯系统”就是在此需求下提出的,其目的是实现Windows平台下的基于B/S(浏览器/服务器)结构的即时通讯系统。采用WEB技术实现B/S(浏览器/服务器)结构的即时通讯系统是发展趋势,基于WEB技术的管理系统,由于开发周期短;易于实现交互式应用;能对信息进行快速、高效的收集、处理和发布,近几年来得到了迅速发展。B/S结构通过将任务合理分配到客户端和服务端,还可以充分利用两端硬件环境的优势,降低了系统的通讯开销。2 开发工具与环境介绍2.1 Visual Studio概述Visual Studio.NET1是.NET平台下最为强大的开发工具,无论是软件服务商,还是企业应用程序的部署与发布,Visual Studio.NET都可以提供近乎完美的解决方案。Visual Studio.NET提供了包括设计、编码、编译调试、数据库联接操作等基本功能和基于开放架构的服务器组件开发平台、企业开发工具和应用程序重新发布工具以及性能评测报告等高级功能。 本系统是在 Visual Studio 2005环境下开发的。Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。2.2 Visual Studio发展历程1998 年,微软公司发布了 Visual Studio 6.0。所有开发语言的开发环境版本均升至 6.0。这也是 Visual Basic 最后一次发布,从下一个版本 (7.0) 开始,Microsoft Basic 进化成了一种新的面向对象的语言:Microsoft Basic.NET。由于微软公司对于 Sun 公司 Java 语言扩充导致与 Java 虚拟机不兼容而 Sun 被告上法庭,微软在后续的 Visual Studio 中不再包括面向 Java 虚拟机的开发环境。 2002 年,随着 .NET 口号的提出与 Windows XP / Office XP 的发布,微软发布了 Visual Studio .NET(内部版本号为 7.0)。在这个版本的 Visual Studio 中,微软剥离了 Visual FoxPro 作为一个单独的开发环境以 Visual FoxPro 7.0 单独销售,同时取消了 Visual InterDev。与此同时,微软引入了建立在 .NET 框架上(版本1.0)的托管代码机制以及一门新的语言C#。C# 是一门建立在 C+ 和 Java 基础上的现代语言,是编写 .NET 框架的语言。2003年,微软对 Visual Studio 2002 进行了部分修订,以Visual Studio 2003 的名义发布(内部版本号为 7.1)。Visio 作为使用统一建模语言(UML)架构应用程序框架的程序被引入,同时被引入的还包括移动设备支持和企业模版。.NET 框架也升级到了1.1。 2005 年,微软发布了 Visual Studio 2005。.NET 字眼从各种语言的名字中被抹去,但是这个版本的 Visual Studio 仍然还是面向 .NET 框架的(版本2.0)。它同时也能开发跨平台的应用程序,如开发使用微软操作系统的手机的程序等。总体来说是一个非常庞大的软件,甚至包含代码测试功能。随着即将发布的 Windows Vista (内部名称:Longhorn) 和 Office 2007,Visual Studio 9也渐渐浮出水面。Visual Studio 9 目前可以确定的是支持建立于 DHTML 基础上的 AJax 技术,这种微软在 Visual InterDev 时代提出的基于异步的客户端动态网页技术在当年并没有像微软预期中的那么流行起来,反而随着 GMail 等应用而东山再起,渐渐成为主流网络应用之一。同时 Visual Studio 9 会强化对于数据库的支持以及微软新的基于工作流(Workflow)的编程模型。预计为了保持与 Office 系列的统一,Visual Studio 9的名称为 Visual Studio 2008。2008年,Visual Studio9也就是Visual Studio 2008将和Windows Server 2008同时发布2.3 Visual Studio 2005特点今天,企业要获得成功,就必须正视构建和维护日益复杂的信息技术 (IT) 解决方案的需求。此外,他们还要借助于新技术来拓展业务功能并开发全新的业务机会。自 IT 部门接受了技术支持任务的那一刻起,他们便成为绝大部分业务策略中的关键角色。 企业当然希望能从他们在 IT 项目的投资中获得最大利润,这就意味着 IT 部门需要在越来越大的压力下多快好省地完成工作。对更高成本效益的追求使得 IT 项目的预见性需求日渐增加。然而,这样做通常造成繁琐的过程和对成本消耗的监控,这只不过是将费用转嫁到不同的问题。付出的代价是开发机会的时间投入以及膨胀的 IT 预算。当 Microsoft 首先发布 Visual Basic 之时,就通过降低其复杂度从而使 Windows 软件开发得以广泛应用。利用 Visual Basic 6.0,Microsoft 让数以百万计的开发人员能够快速开发客户端/服务器应用程序。最近,利用 Visual Studio .NET,Microsoft 又为开发人员提供了轻松开发分布式应用程序的工具与技术。通过 Visual Studio 2005 Team System,Microsoft 正在解决日益增加的应用程序复杂性及其设计、开发和部署所必需的生命周期问题。这一点是通过提供必需的工具和指导从而能够预见、重复结果(无需付出生产效率和创新的代价)实现的。 信息交流:通过降低报告的运转开销和寻觅团队成员间新的交流渠道,Visual Studio Team System 着重于能够更好地进行交流。例如: 通过自动从团队成员使用的工具那里收集信息,可以简化报告过程。从 Visual Studio Team System 采集到的数据保存在数据仓库中,这使项目状态报告和可见性能够面向软件开发团队的所有成员,甚至是项目组之外的乾系人。 项目经理能够将客户需求转化为开发团队中的工作项,然后跟踪工作项的状态以实现项目状态的监控。 分布式系统设计器 (Distributed System Designer) 将应用程序开发和部署需求转化为能够让开发人员和操作进行交流的公共语言 (SDM)。 集成的工具:Visual Studio 的成功已被证实,即开发人员偏爱一个具备对他们需要的工具提供接口的集成开发环境。通过将开发人员在开发环境中需要的测试和性能工具(例如,单元测试、代码分析和性能分析)合并在一起,Visual Studio Team System 也期待着这种成功。这使开发人员能够在生命周期的较早阶段就改善其代码的质量,而无需中断他们的工作。通过尽早地为开发人员提供他们需要用于识别和解决质量问题的工具,更多的产品缺陷就能够在它们还未构成危害之前即被发现并解决。 简化的、集成的工作流和过程:有了 Visual Studio Team System,那么过程就不仅仅是文档了。它还能将自己体现为实际的工具行为更改。当您在项目初期选择过程时,还需要选择工作流和工作产品,它们会驱动系统的行为方式。对 SDLC 过程的支持是内置的,这使得对工作流的支持是无缝的。通过将过程集成到团队成员日常使用的基本工具中,Visual Studio Team System 大大消除了过程采纳的障碍,并使自动收集跨职能的项目标准成为可能,而无需实施人工报告的相关开销。 增加的投资回报:利用信息交流和生产效率的改进,企业将明显地看到针对其在 SDLC 工具和过程方面的投资而增加的 ROI。Visual Studio Team System 提供一个具有成本效益的解决方案,从而通过使用跨所有 SDLC工具的广泛集成,实现对软件开发生命周期的管理。通过提供集成的工具集并基于现有知识进行构建,Visual Studio Team System 提供一个友好的环境来帮助开发团队提高效率,而无需掌握不必要的、复杂的概念和僵化的工具。 2.3.1集成 通过将 SDLC 工具集成到 UI 级别的表面,Visual Studio Team System 提高了团队工作效率并增强了项目的可预见性,下面说明数据级别表面以及过程级别的项目上下文。 用户界面集成:工具间的无缝集成是增强生产效率的关键3。Visual Studio Team System 提供跨整个SDLC 工具套件的、一致的用户体验。对于开发人员而言,可以在他们当前的开发环境中使用某些活动(例如,单元测试、工作项跟踪、代码剖析以及代码分析)。 数据集成:通过使用一个公共的跨工具集的数据仓库,Visual Studio Team System 解决了在大多数 SDLC 工具中建立数据仓库这一问题,并启动了一个聚合的项目状态视图。团队根据能够收集到的规则来管理项目。今天,数据主要限于缺陷跟踪。Visual Studio Team System 中集成的数据将开创一条新路 通过平衡利用贯穿于 SDLC 的大量、多样的数据来管理项目规则。Visual Studio Team System 会收集精确的数据 不仅限于缺陷跟踪,而是包括测试结果、代码涵盖、代码生成、任务进度等这些贯穿于团队常规工作流程的数据。该数据以某些标准的报告方式呈现,客户和 Microsoft 内部团队已在报告中建立了成功项目管理的关键规则。此外,团队还能够创建自定义报告。仅当以项目的大范围上下文查看数据时,团队才能够精确地报告项目状态。 过程集成:在 Visual Studio Team System 中,工具行为由项目开始时选择的过程决定。通过将过程与工具相集成,Visual Studio Team System 帮助确保在项目各阶段之间或各种项目角色之间避免丢失任何内容。通过自动处理团队成员之间的工作调整,可以提高团队效率。公司通过使过程标准化,能够纠正贯穿于过程改进中的系统问题,而无需增加团队的工作量。此外,过程集成并不增加工作量,而通常能够降低与 SDLC 中所采纳过程相关的开销。 2.3.2扩展性尽管存在一些基本的工具可组成 SDLC 工具(例如,架构师工具、测试工具等),但是 SDLC 并未限制住工具的数量。当集成支持 SDLC 的工具时,团队会发现在提高团队效率,同时降低复杂性这些方面的好处。Visual Studio Team System 将提供基本的平台,让所有提供商能够以一种普通的、公众可理解的形式交换信息。这理所当然地铸造了一个充满活力的合作伙伴体系,合作伙伴能够构建完全集成的工具,简化构建 IT 解决方案的复杂性,以及推动信息交流和鼓励团队协作。要获得跨 UI、数据和过程集成的最大价值,就需要扩展性。扩展性促成交互性。Visual Studio Team System 设计基础是扩展性模型。Microsoft 提供的 SDLC 工具利用与第三方可用的扩展性功能相同的扩展性功能。扩展性体现在集成的三个层次:UI、数据和过程。 用户界面扩展性:Visual Studio Team System 利用现有的 Visual Studio Industry Partner (VSIP) 计划,将补充的产品和服务插入到 Visual Studio 集成开发环境 (IDE) 之中。 数据扩展性:Visual Studio Team System 利用 Visual Studio Team Foundation Core Services (TFCS) 将这些工具集成在一起。TFCS 提供一组能够将工具集成在一起的工具,无需工具间的紧密耦合。对于数据收集,TFCS 还能够将第三方工具用于由 Visual Studio Team System 使用的数据仓库。 过程扩展性:Visual Studio Team System 使用方法论模板来定义每个项目将遵循的过程。不存在适用于所有组织、以至一个组织内的所有项目的通用过程。不要为此担心,Visual Studio Team System 是一个灵活的工具集,它采用即灵活又正规的过程。Microsoft 的 Global Solution Integrator 合作伙伴将提供他们自己的方法论模板产品;或者,您可以自己创建模板。过程扩展性允许自定义工作项类型、签入策略、自定义报告以及项目管理模板。 有关详细信息,请参阅 Visual Studio 2005 Team System:Microsoft Solutions Framework 和 Visual Studio 2005 Team System:扩展套件。2.3.3 Microsoft Visual Studio 2005 Team System Microsoft Visual Studio 2005 Team System 提供支持整个软件开发团队的工具: 架构师:Visual Studio 2005 Team Architect Edition 包括集成、高效的工具,用于直观地构建面向服务的解决方案,这些解决方案从部署环境的初始状态开始设计。有关详细信息,请参阅 Visual Studio 2005 Team System:设计分布式系统以进行部署。 开发人员:Visual Studio 2005 Team Developer Edition 为开发人员提供高级的静态分析、代码剖析、代码涵盖以及单元测试工具,使团队能够在整个生命周期中尽早、频繁地规划质量。有关详细信息,请参阅 Visual Studio 2005 Team System:构建健壮而可靠的软件。 测试人员:Visual Studio 2005 Team Test Edition 构建于开发人员版本之上,更好地为测试人员提供了用于管理和运行各种测试(包括单元测试、手工测试和 WEB 测试)的工具,以及使团队能够在应用程序部署之前检验其性能的高级负载测试工具。有关详细信息,请参阅 Visual Studio 2005 Team System:通过更完善的测试实现更好的软件。 项目管理人员:Visual Studio 2005 Team Foundation 提供一套基于软件项目管理人员已知内容的项目管理工具:Microsoft Excel、Microsoft Project 和 Windows SharePoint Services。与 Microsoft Office 集成,项目管理人员不再需要手工将数据从这些应用程序映射到供工程团队使用的数据。项目站点提供仪表盘式的项目状态视图,以及向下追溯风险承担者的功能。丰富的报告提供了从整个常规的团队工作流中收集的规则。自定义项目过程基于业界公认的实践来驱动生命周期。有关详细信息,请参阅 Visual Studio 2005 Team System:软件项目管理。 团队开发:Visual Studio 2005 Team Foundation 还提供团队协作工具,使组织能够不费吹灰之力即可管理并跟踪过程和软件项目的运行状况。Portfolio Explorer 将可从项目站点获得的这些相同的项目工作产品集成到 Visual Studio IDE,从而让团队能够进行有效的访问。Visual Studio 2005 Team Foundation 还提供一个可扩展的工作项跟踪系统和企业级别的源代码管理。有关详细信息,请参阅 Visual Studio 2005 Team System:企业级源代码管理和工作项跟踪。2.4 SQL Server 2005概述SQL Server 2005 基于 SQL Server 2000 的强大功能之上,提供了一个完整的数据管理和分析解决方案,它将会给不同规模的组织带来帮助:(1)构建、部署和管理企业应用程序,使其更加安全、伸缩性更强和更可靠;(2)降低开发和支持数据库应用程序的复杂性,实现了 IT 生产力的最大化;(3)能够在多个平台、应用程序和设备之间共享数据,更易于连接内部和外部系统;(4)在不牺牲性能、可用性、可伸缩性或安全性的前提下有效控制成本;SQL Server 2005 在以下三个重要方面改善了您的数据基础架构:企业数据管理、开发人员效率和商业智能 (BI)。它在可接受的价格和许可费用以及升级到 SQL Server 2005 和 Microsoft Windows Server System 的途径方面也有新的突破。3 系统概述3.1系统需求分析3.1.1功能要求 通过即时通讯系统,实时发送聊天信息,可以指定聊天的对象,给不在线的用户留言和备份聊天记录等。功能更强大的即时通讯系统不仅提供发送信息也可以进行各种设置包括聊天者的表情及文字颜色,还支持视频和音频、传送文件等功能。即时通讯系统的特点就是要求能够进行实时显示出聊天者所谈的内容。所谓“实时”就是指在同一个聊天室的不同使用者,可以在短时间里立刻看到其他人的发言,这与我们所说的论坛有很大的不同。在ASP.NET没有得到广泛应用之前,聊天室大多是用CGI 程序或者JAVA开发的APPLET维护的,要开发一个聊天室系统是很费时费力的。网上聊天室作为用户的最为喜欢的WEB应用程序,其特点就是强调信息的即使性和信息发布式的多样性。从功能上讲,网上聊天室系统与论坛系统非常相似,但聊天室系统有自己的特点。它强调信息的即使性,在聊天室保持连接的状态下,要求能够实时显示出聊天者所谈的内容。3.1.2性能要求开发一个完整的聊天室要用到许许多知识,在开发以前首先要知道开发的程序要满足哪些要求及实现的功能是什么。设计一个功能完善的聊天系统,工作量是非常庞大的,但设计时一般有以下几个问题需要我们注意。系统需要解决的主要问题在规划设计一个即时通讯系统时,首先要确定好谈话内容存储方式,即在客户机上显示即使谈话的内容应以什么方式存储在服务器中。ASP.NET中可以用三种形式实现聊天内容的存取:用全局变量Session对象实现,这种形式速度快、效果好,但系统资源消耗太大。用读写文本文件完成.这种方法适合简单的聊天室,用户多了不方便管理。用读写数据的方法实现。这种方法相对比简明,数据也方便管理,这种方法比较适合本系统。3.2系统概要设计本系统主要实现了以下功能:(1) 用户注册登陆聊天室(2) 聊天把语句写入数据库(3) 改变聊天对象(4) 浏览器不断的对数据库进行刷新 读取(5) 对用户留言进行查看和管理 (6) 对聊天记录的保存其系统功能结构图如图3-1所示:图3-1 系统功能结构图4系统详细设计4.1系统数据库设计详细设计是整个设计过程中,最重要的步骤之一,下面就系统中设计涉及到数据库方面的部分进行详细的设计4。数据库在一个信息系统当中占有非常重要的地位,数据库设计的优劣直接对系统的以及实现的效果产生影响。设计数据库应该充分了解用户各个方面的要求。包括现有的以及将来可能增加的需求5。本系统主要的数据库表有:User表保存用户信息(表4-1);UserLogin表保存用户登录的信息(表4-2);Group表保存组的信息(表4-3);GroupUser表保存用户与组之间的关系(表4-4);Leaveword表保存留言信息(表4-5);MessageForSingle表保存用户与用户的聊天信息(表4-6);数据库表关系图如图4-1所示:图4-1 数据库关系图1. User表,保存用户信息: 表 4-1 用户表字段名数据类型(长度)键说明键引用IDIntID主键(自动增长)PKUsernameVarchar(50)用户名称AliansnameVarchar(50)用户别名PasswordVarchar(255)用户密码UserIdentityVarchar(10)唯一标识CreateDateDatetime创建日期EmailVarchar(255)电子邮件PictureUrlVarchar(255)图片地址SigningVarchar(1000)个性签名2UserLogin表保存用户登录的信息:表 4-2 用户登录信息表字段名数据类型(长度)键说明键引用IDIntID主键(自动增长)PKUserIDInt用户ID值(引用User表的ID列)FKLoginDateDatetime登录时间LoginoffDateDatetime退出时间SigningVarchar(1000)个性签名3Group表保存组的信息:表 4-3 用户组表字段名数据类型(长度)键说明键引用IDIntID 主键(自动增长)PKNameVarchar(20)组名称UserIDint所属用户的ID值(引用User表的ID列)FK4GroupUser表保存用户与组之间的关系表 4-4 用户与组关系表字段名数据类型(长度)键说明键引用IDIntIDPKGroupInt所属组的ID值(引用Group的ID列)FKUserIDint用户的ID值(引用User的ID列)FKIDIntIDPK5Leaveword表保存留言信息:表 4-5 用户留言表字段名数据类型(长度)键说明键引用IDIntID主键(自动增长)PKBodyVarchar(200)留言内容SenderInt发送者(引用User的ID列)FKReceiverInt接收者(引用User的ID列)FKCreateDateDatetime创建时间StatusTinyint留言状态IDIntID主键(自动增长)PKBodyVarchar(200)留言内容SenderInt发送者(引用User的ID列)FK6.MessageForSingle表保存用户与用户的聊天信息表 4-1 聊天记录表字段名数据类型(长度)键说明键引用字段名数据类型(长度)键说明键引用IDIntID主键(自动增长)PKBodyVarchar(200)消息主体SenderInt发送者(引用User的ID列)FKReceiverInt接收者(引用User的ID列)FKCreateDateDatetime创建时间字段名数据类型(长度)键说明键引用IDIntID主键(自动增长)PKBodyVarchar(200)消息主体4.2功能模块实现4.2.1在线即时通讯系统应用程序的组成1APP_Code文件夹包含6个类文件:ASPNETAJAXWeb.cs、Data.cs、Group.cs、Leaveword.cs、Message.cs和User.cs。它们定义了多个类,比如AjaxInstant、MessagingSystem、User等;2 PP_Themes文件夹包含了AjaxInstantMessage应用程序的主题和样式文件6,如web.css、web.skin;3BIN文件夹包含了AjaxInstantMessageing应用程序引入的程序集,如AjaxControlTookit.dll、ASPNETAJAXWEB.ValidateCode.dll等。4Haifellow文件夹包含与好友和组相关的页面,如添加好友AddFellow.aspx页面、移动好友的MoveFellow.asp页面、管理组的GroupManage.aspx页面等;5UserInfo文件夹包含与用户信息相关的页面,如查看用户留言的MoveFellow.aspx页面、查看用户聊天记录的MyMessage.aspx页面等;Default.aspx页面为在线即时通讯系统的主页面,Desktop.aspx、Header.aspx、Manager.aspx和Toolbar.aspx页面为主页面的辅助页面。其中,Toolbar.aspx页面显示快捷工具栏;6Leaceword.aspx页面留言功能;7Login.aspx和Loginoff.aspx页面分别实现用户登录和退出系统的功能;8web.config文件为AjaxInstantMessanging应用程序的配置文件,它配置了数据库连接字符串、引用程序集等属性。ajaxInstantMessaging应用程序的连接数据库字符串防治在web.config配置文件的元素中,具体代码如下:4.2.2 用户登录和退出模块在线即时通讯系统中与用户相关的数据库访问层由User类实现,User类的类视图如图4-2所示。 图4-2 User类类视图public DataSet GetUsers(),获取所有用户信息;public SqlDataReader GetUserLogin(string username,string password),根据用户的名称和密码获取该用户的ID值,实现登录功能;public DataSet GetFellowByUser(int userID),根据用户获取其好友;public DataSet GetFellowNotInCaboodleByUser(int userID),根据用户获取好友;public SqlDataReader GetSingleUser(int userID),获取单个用户的信息;public int AddUser(string username,string aliasname,string password,string email,string pictureUrl,string signing),添加新用户;public int AddUserLogin(int userID),记录用户登录;public int UpdateUser(int userID,string aliasname,string email,string signing),更新用户信息;public int UpdateUserPassword(int userID,string password),修改用户密码;public int UpdateUserLogoff(int loginID),用户退出系统;public int DeleteUser(int userID),删除用户;1界面设计如图4-示:图4-登录界面2.事件设计:(1)检测用户输入的验证码是否正确,如果不正确,则显示验证码错误信息7;如果验证码正确则调用User类的GetUserLogin(string username,string password)方法,根据用户输入的名称和密码获取该记录的ID值,并返回获取的ID值(2)如果用户输入的名称和密码都正确,则创建保存用户信息的UserInfo对象ui,并将该对象保存到全局变量在线用户列表ASP.global_asax.Users中。(3)如果登录成功,则重定向到在线即时通讯系统的主页面;3.退出系统:用户退出系统由Logoff.aspx页面实现,首先把保存在Session对象中的用户信息清空,然后调用Clear()和Abandon()方法清空并停止当前的Session对象,最后重定向到登录页面,代码如下: protected void Page_Load(object sender, EventArgs e) /清空用户信息SessionUserID = null;SessionUsername = null;/停止当前会话Session.Clear();Session.Abandon();/重定向到用户登录页面Response.Redirect(/Login.aspx);4.2.3 好友的分组和管理好友分组相关的数据库访问层由Group和GroupUser类实现,类视图如图4-和图4-所示:图4-Group类的类视图图 4- GroupUser类的类视图public DataSet GetGroupByUser(int userID),根据用户获取其组public SqlDataReader GetSingleGroup(int groupID),获取指定组的信息public int AddGroup(string name,int userID),添加新组public int UpdateGroup(int groupID,string name),修改组的信息public int DeleteGroup(int groupID),删除组信息public DataSet GetUserbyGroup(int groupID),根据组获取用户信息public int AddGroupUser(int groupID,int userID)添加组的新用户public int UpdateGroupUser(int oldGroupID,int newGroupID,int userID)修改组的用户public int DeleteGroupUser(int groupID,int userID)删除组中的用户1.管理好友分组界面如图4-所示。 图4- 管理好友分组界面gvGroup控件定义了RowCommand事件gvGroup_RowCommand(object sender,GridView RowEventArgs e) 8。如果被单击的按钮CommandName属性值为“update”,则重定向到修改分组的页面,并将分组ID值传递到该页面。如果被单击的按钮CommandName属性值为“del”,则调用Group类的DeleGroup(int GroupID)方法删除当前的分组,并重新显示分组信息。代码如下:protected void gvGroup_RowCommand(object sender, GridViewCommandEventArgs e)if(e.CommandName.ToLower() = update) /重定向到修改组页面Response.Redirect(/Hailfellow/UpdateGroup.aspx?GroupID= + e.CommandArgument.ToString();return;if(e.CommandName.ToLower() = del) /删除选择的组Group group = new Group();if(group.DeleteGroup(Int32.Parse(e.CommandArgument.ToString() 0)BindPageData(userID);return;2.管理好友如图4-所示。图4- 好友的管理gvUser控件定义了RowCommand事件gvUser_RowCommand(object sender,GridViewRow EventArgs e)。如果被单击按钮的CommandName属性的值为“del”,则调用GroupUserl类的DeleteGroupUser(int groupID,int UserID)方法删除当前行的好友,并重新显示。代码如下:protected void gvUser_RowCommand(objectsender,GridViewCommandEventArgs e)if(e.CommandName.ToLower() = del) /删除组中的好友GroupUser groupUser = new GroupUser();int groupID = Int32.Parse(GridView)sender).EmptyDataText);if(groupUser.DeleteGroupUser(groupID,Int32.Parse(e.CommandArgument.ToString() 0)BindUserData(GridView)sender,groupID);return;3.搜索好友如图4-所示图4-好友搜索结果提交按钮触发btnComit控件的Click事件实现搜索功能。该事件调用ShowSearchResult()函数显示搜索结果。代码如下:protected void btnCommit_Click(object sender,EventArgs e)/初始化搜索结果数据gvUser.DataSource = null;gvUser.DataBind();lbMessage.Visible = false;if(SessionValidateCode.VALIDATECODEKEY != null) /验证验证码是否相等if(tbCode.Text != SessionVali
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西南林业大学《智能医学图像处理课程设计》2023-2024学年第一学期期末试卷
- 重庆健康职业学院《第二外国语一》2023-2024学年第二学期期末试卷
- 云南省广南县第三中学2025届招生全国统一考试生物试题模拟试题含解析
- 中国计量大学《物联网通信技术》2023-2024学年第二学期期末试卷
- 江苏省扬中学市重点名校2025年初三下学期4月调研考试数学试题试卷含解析
- 攀枝花市重点中学2025年初三下学期期末语文试题含解析
- 眉山职业技术学院《描述统计学》2023-2024学年第二学期期末试卷
- 辽宁建筑职业学院《书法书法临摹与创作》2023-2024学年第二学期期末试卷
- 湖南幼儿师范高等专科学校《绿色建筑与系统工程》2023-2024学年第一学期期末试卷
- 平顶山工业职业技术学院《教育技术学学科前沿》2023-2024学年第二学期期末试卷
- TCACM 1554-2023 肛漏中医诊疗指南
- 直播间搭建培训
- 刑事诉讼中电子数据冻结的性质及其法律规制
- 2025年重庆三支一扶招募469人高频重点提升(共500题)附带答案详解
- 企业投资项目后评估管理制度
- 健身会籍顾问
- 电力系统分析知到智慧树章节测试课后答案2024年秋东北电力大学
- 2025年济南政金投资限公司招聘工作人员高频重点提升(共500题)附带答案详解
- 2025年中航证券有限公司招聘笔试参考题库含答案解析
- 探槽工程施工方案
- 电厂环境卫生治理方案
评论
0/150
提交评论