网络聊天工具的设计与实现-完全实现版 PPT课件_第1页
网络聊天工具的设计与实现-完全实现版 PPT课件_第2页
网络聊天工具的设计与实现-完全实现版 PPT课件_第3页
网络聊天工具的设计与实现-完全实现版 PPT课件_第4页
网络聊天工具的设计与实现-完全实现版 PPT课件_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 基于WebServices简易网络聊天工具的设计与实现 东南大学成贤学院计算机工程系 2 学习目标 掌握完整项目开发的流程 掌握动态网站分层设计模式 掌握LINQtoSQL类的使用 掌握传递二进制文件的Web方法 掌握Web服务中用户状态的管理 3 内容摘要 本次课程实现一个类似QQ的网络聊天软件的功能 服务端采用WebServices提供技术支持 客户端采用Windows窗体 为用户提供网络聊天的简单功能 4 系统测试 5 需求分析 1 聊天工具主要为用户服务 所以必须有好友管理模块 包含 添加好友 删除好友 需要自己开发 等 并且还要有好友关系 我是你的好友不一定你也是我的好友 好友关系具有单向性 2 发送聊天信息 3 发送文件 这里限制文件大小10KB 6 具体功能 1 用户注册 用户想要登陆系统必须先注册 2 用户登陆 登陆成功后才能添加好友聊天 3 添加好友 登陆成功后需要添加其他在线用户为好友 条件是 必须是在线用户 不能已经是好友还要添加 4 好友验证 当接收到添加好友的请求时 进行选择是否同意 同意则该好友出现在自己的好友列表 拒绝则请求添加好友失败 5 发送消息 登陆用户必须向自己的好友才能发送信息 6 发送文件 登陆用户可以向好友发送小于10KB的文件 好友是否接收可以选择 7 系统功能图 8 系统结构设计 应用程序架构采用C S结构 服务端采用WebServices作为服务的技术支持 客户端采用WindowsForm实现 开发工具选择VisualStudio2010旗舰版 数据库使用SQLServer2008 服务端采用两层结构 即DAL和BLL 数据访问层使用LINQtoSQL类来实现 大大简化该层的设计工作量 业务逻辑层使用LINQ来操作数据对象 9 数据库设计 10 项目具体实施 一 创建数据库表 根据数据库设计创建数据库 11 12 二 服务端设计 13 1 新建Web服务项目 打开VS2010 文件 新建 项目 ASP NETWeb应用程序 选择 NETFramework4 0框架 项目名 WebServiceApp 如图所示 14 15 2 新建两个类库 16 Web DAL处理与数据库交互的操作 17 同理 创建Web BLL处理网站业务逻辑 成功后效果如图所示 18 3 数据访问层的设计选中Web DAL 右键 添加新项 LINQtoSQL类 19 添加成功后如图所示 20 选中VS2010服务器资源管理器 21 右键 数据连接 添加连接 22 选中数据源 23 添加连接 服务器名 敲入小数点 表示是本地数据库服务器 连接或输入一个数据库名 选中创建的ws message 最后点击 测试连接 如图 24 展开数据库 将三个表用鼠标拖到DataMessage dbml中 25 在DataMessag dbml页面空白处右键 属性将序列化模式改成单向 防止数据表之间无限循环引用 26 同时 在属性窗口 分别修改四个关联关系的父属性 将访问权限均改为Internal 同样也是避免无限循环引用 数据访问层设计完成 27 4 构建业务逻辑层右键Web BLL 新建类MessageManager cs 这个类包含网站业务逻辑所有函数 如图所示 28 添加判断用户是否存在函数 该函数判断登陆框里的用户名是否是Users表中的注册用户 存在为True 否则false 代码出现错误 解决方法如下页图示 29 为Web BLL添加Web DAL的引用 因为Web BLL需要用到数据访问层的函数 30 添加成功后 在MessageManager cs导入命名空间 问题得到解决 如图所示 31 执行用户注册功能函数 该函数在Users表中插入一条记录 成功为true 否则为false 代码出现错误 还是缺少引用 继续添加如下页图 32 为Web BLL添加System Data Ling引用问题得到解决 33 用户登陆函数 该函数返回合规的users表一条记录 34 添加好友 该函数首先判断Friends表UserName是否有FriendName的记录 如果没有 则将Messages表一条记录的Sender和Receiver赋值给Friends表一条记录的UserName和FriendName 然后在这两个表分别插入这一条记录 否则什么也不做 35 同意好友 该函数判断是否存在Messages表的一条记录 使得Sender和Receiver分别等于Friend表的FriendName和UserName 如果存在将IsPass设置为true 并将这条记录插入到Messages表中 36 拒绝好友请求 该函数将Friends表符合条件的好友关系删除 更新消息记录 37 发送消息 该函数根据Classify的取值不同执行不同的动作 38 Copy信息列表 该函数返回一个消息列表 实际上是当前信息列表的副本 39 获取信息列表 该函数保存形参nickname的消息记录 40 获取指定用户好友列表 至此 MessageManager cs文件设计完成 41 创建业务逻辑对应的WebServices方法 为了将这些方法在网络中暴露出来 能够被其他客户端应用程序引用 必须将这些方法映射到Web服务的方法中 在WebServiceApp项目中添加一个Web服务网页 重命名为WSMessage asmx 如下图 42 43 给服务端添加引用 导入命名空间 44 Web服务添加代码后出现错误 如图 45 返回Web BLL类库的MessageManager cs 将类声明为public 问题解决 46 注册用户 47 验证登陆 48 添加好友 49 处理好友请求 50 发送消息 51 发送文件 52 监听消息 该函数获取当前登陆用户Message表中的一条消息记录 53 获取好友列表 至此 Web服务设计完成 54 服务器端测试 Register函数测试 55 56 HaveUser函数测试 57 Login函数测试 刚刚注册用户tom 密码是1 说明MessageManager cs代码有漏洞 自己修正 至此 服务端设计完成 58 因为其他函数都需要客户端信息传递后才能看到效果 所以在服务端测试不了其有效性 只有等到客户端做好后才能测试 59 客户端设计 再打开一个VS 文件 新建 项目 Windows窗体应用程序 60 新建四个窗体 如图所示 61 在项目首先添加Web服务引用 如图 62 点击 高级 63 点击 添加Web引用 64 复制服务器的网址 65 点击绿色右箭头前往 将Web服务引用名更改为WebServiceMessage 点击添加引用 66 窗体设计 1 添加好友窗体FormFindFriend文本框ID txtUsername发送请求按钮ID btnRequest用户名 label控件 67 在FormFindFriend cs 设计 页面 按下F7 转到后台代码页面 创建WSMessageWeb服务的实例对象及属性 68 发送请求按钮的Click事件 注意 代码正确 但是出现红色波浪线 很可能是将代码粘贴进来的 重新敲一遍即可 代码最好通过双击按钮添加而不要直接复制 69 2 注册窗体 用户名ID txtNickname密码ID txtPassword重复密码ID txtRePassword注册ID btnSubmit 70 注册按钮的Click事件 71 3 登陆窗体 用户名ID txtUsername密码ID txtPassword注册按钮ID btnRegister登陆按钮ID btnLogin 72 在后台代码页FormLogin cs定义FormMessage类实例对象master 并创建对应的属性Master 73 注册按钮Click事件 74 登陆按钮Click事件 75 CookieContainer红色波浪线解决方法 usingSystem Net 下面的两条红色波浪线之后解决 4 添加新类执行字符串和二进制数组转换功能的静态方法类ConvertStringAndBytes cs 代码如下 76 77 关闭FormLogin窗体执行的动作 在窗体属性的事件里 指定关闭时的事件处理 78 5 聊天窗体 btnRefresh btnSearch btnSendFile btnSend txtMessage多行文本框 txtMessages多行文本框 Listbox控件 79 在FormMessage cs中创建Web服务代理对象和两个属性 添加以上代码后 登陆注册按钮的WsMessage红色波浪线得到解决 80 FormMessage构造函数 第一个红色波浪线去掉见下页 this timerMonitor Start 在后面处理 81 添加初始化好友列表函数 82 刷新按钮的Click事件添加好友按钮的Click事件 83 发送按钮的Click事件 加入添加消息列表函数 红色波浪线消失 84 发送文件按钮的Click事件 usingSystem IO 解决FileInfo语法错误 SendFile语法错误下页解决 85 添加发送文件函数 86 关闭窗体 记得在FormMessage窗体属性事件里 指定窗体关闭事件函数FormMessage FormClosed 87 定位FormMessage cs 设计 点击VS菜单栏的视图 工具箱 所有Windows窗体 双击timer控件 Name 重命名timerMonitor 双击时间控件 弹出其函数 添加以下代码 解决this timerMonitor Start 红色波浪线 88 获取信息 好友请求 89 获取好友请求响应 90 获取文件 91 设置接收的文件的文件名 92 FormMessage是主窗体 将本项目的Program cs文件修改如下 93 在本页面点击 发送 按钮可以发言 也可以点击回车发言 设置如下 在FormMessage cs 设计 页面 右键空白页 选择属性 设置为 94 在事件窗体 左图是 属性 右图是 事件 对应闪电图标 95 特别注意 打开FormMessage designer cs文件 展开WindowsFormDesignergeneratedcode 96 保证要有灰显的一行 如果没有 则添加好友消息不能捕捉 97 系统测试 98 在项目Message bin Debug下有Message exe 双击运行即可打开新的客户端 当项目修改后需要重新生成 这样Message exe就被更新了 99 100 tom加jerry为好友 如图 101 102 103 104 105 106 107 发送文件 108 返回 109 项目小结 1 初步了解开发完整项目的流程 2 通过项目体会到Web服务到底能做什么 3 初步接触LINQtoSQL作为数据访问层 从而减小编写DAL的难度 4 初步认识动态网站开发的三层结构 因为这里的客户端是窗体程序 所以还不太明显5 项目还存在很多功能上的局限性 110 项目功能局限性 1 不能直观查到在线用户 必须到后台数据库才能看到 2 好友添加后就不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论