刘子煜
个人记录
项目实训_无纸化会务系统
这个作者很懒,什么都没留下…
展开
-
程序功能完善
程序功能完善投票功能完善 页面跳转逻辑投票功能变更 对于非主持人角色,初始状态下将不显示任何投票,仅当主持人开启投票后这个投票才对其它角色可见,且正在进行的投票会排在已经结束的投票的上方结束会议功能变更 主持人可以结束会议,当主持人结束会议后其它所有设备同步退出程序程序起始页添加 程序启动后需要执行相对较多的网络连接来进行准备,为了给用户良好的反馈,在显示会议信息之前添加了一个等待页面健壮性提升 客户端在会议中可能因为一些意外因素如电量不足导致程序中途退出,为了保证客户端中途原创 2021-06-10 19:07:39 · 68 阅读 · 0 评论 -
客户端数据清理
客户端数据清理需求当程序退出后,需要清除会议相关的持久化信息然后退出实现方案由于当程序退出时需要执行操作的位置在代码中相对分散,且程序退出情况也不止一种,于是我写了一个简易的Publisher-Subscriber系统,将产生退出行为的对象与需要在退出前执行一些操作的对象解耦,提高了代码的可维护性。相关代码namespace pm_client.util { public class MessagePublisher { public const string CLOSE原创 2021-06-10 19:03:04 · 87 阅读 · 0 评论 -
PDF手势缩放
PDF手势缩放需求实现pdf页面双指放大效果主要问题原本这个问题可以简单地通过wpf的manipulate相关事件来实现,但是开启此事件的拦截会导致已有的pdf第三方库失效。实现方案通过采集更原始的TouchMove事件实现自己的手势判断逻辑。具体来讲, 两个以上触摸点存在时,任意一个触摸点的远离将导致pdf放大,靠近将导致pdf缩小。 距离的计算为计算最近更新的两个触摸点的距离,当距离变化累计超过一个阈值时计算一次缩放倍率。实现代码private void zoom(object原创 2021-06-10 19:01:03 · 329 阅读 · 0 评论 -
STOMP 客户端开发
STOMP 客户端开发需求客户端需要彼此通信,如主持人需要能够控制所有客户端的第三方应用开启权限主要问题目前的c/s模型中是客户端主动连接服务器,客户端发出请求,服务器给出响应,缺少信息主动从服务器流向客户端的流程。可选方案在客户端上开启服务器接收主动连接请求,如基于TCP的服务器、基于HTTP的服务器等。主要问题是在客户端上再监听一个端口看起来非常冗余。轮询,客户端定时向服务器查询是否有信息更新。主要问题是这会产生非常多无意义的查询,如果客户端足够多也会对服务器造成负担。保证对每原创 2021-06-10 19:00:04 · 399 阅读 · 0 评论 -
无纸化会议-数据绑定和网络连接
无纸化会议-数据绑定和网络连接数据绑定和网络连接功能基本完成,现在客户端可以通过网络请求同步服务器数据了。界面中硬编码的文字,比如标题和时钟,已经替换成了实时更新的数据,根据后端提供的http接口文档编写了对应的数据类,实现了网络请求功能。http请求实现方案客户端http请求使用RestSharp库实现,使用Newtonsoft.Json库实现json的编解码关键代码举例public static string post(string rootPath,Dictionary<string原创 2021-04-22 08:12:14 · 222 阅读 · 0 评论 -
无纸化会议-UI修正记录
无纸化会议-UI修正记录主要工作对UI进行了大量的修改,完善了许多细节修复问题侧边栏代码重构,现在有了一个更好的界面效果和更简洁的代码实现修复了侧边栏设置按钮选中状态不与其他按钮互斥的问题调整了大量文字的缩进对齐调整了侧边栏、按钮、列表等多位置的背景颜色修复了程序退出卡顿的问题修复了按钮在触摸屏上的不正确表现完成了主界面布局的对齐添加了文件加载的动画提示添加了等待登录界面新的解决Image不能持有default和checked两种状态的方案创建一个数据类,持有default和ch原创 2021-04-21 22:35:19 · 116 阅读 · 0 评论 -
无纸化会议-禁止进程启动
无纸化会议-禁止进程启动需求实现禁止进程启动的功能可选方案轮询。每隔固定时间检查一次进程列表,比较出新出现的进程,然后将其kill。这种方法会消耗相对较多的计算资源,并且有响应延迟,且实现难度不低,故不采用dll注入向全局注入一个dll,当有新进程启动时,dll进行attach时会向无纸化会议系统发回启动进程的进程id,系统收到id后据此来实现kill这里选择这一种方案,相比于第一种方案,dll注入可以在进程启动时立即响应,没有延迟,不需要循环查找和比较,资源消耗相对较低,由于这使用了c原创 2021-04-21 21:28:46 · 85 阅读 · 0 评论 -
无纸化会议系统开发记录 20210320
无纸化会议系统开发记录 20210320过去一周主要完成了c# 入门学习,wpf入门学习,以及客户端界面的业务逻辑无关的部分的开发工作。界面展示部分需求细节、遇到问题和解决方案界面要有回退功能,如主持人角色可以完成如下路径:会议投票列表->投票内容详情页->发起投票后查看投票结果页->选择支投票情况详情页,这一过程应该支持回退,当切换到其他功能,如文件浏览后再切换回选择功能时,之前的页面状态应当被保留解决方案是维护一个<功能名,栈>映射字典,每原创 2021-03-20 20:53:01 · 213 阅读 · 0 评论