IssueVision学习笔记一
来源:互联网 发布:warframe淘宝 编辑:程序博客网 时间:2024/06/03 20:27
概述:
1、IssueVision功能上是一个公司的网络部门里面, 接到故障报告,分配任务给部门成员. 然后反馈/确认. 关键想展示冲突解决和AutoUpdate
2、IssueVision主要是来说明SmartClient的特性的,实现在线/离线,很好的用户体验,自动更新,快速的响应速度,数据冲突的解决等,而不是展示IssueVision的功能,它只是一个demo。
3、IssueVision中并没有权限的控制,只判断了身份是否合法。AppUpdater和WindowsUpdate是没有关系的,它是通过web services比较软件的版本来确定是否需要升级。
ThreadHelper.dll: 提供线程相关组件
SplashScreen 闪现的屏幕
SingletonApp 唯一程序,第二个实例不会动作
SafeLabel -- 可在多线程下安全操作的Label
BackgroundWorker 后台工作程序
RunWorkerAnsy() 开始后台工作
DoWorkEventHandler 后台执行开始事件 执行异步任务
RunWorkerCompletedEventHandler 后台执行结束事件
ReportProgress() 报告后台进度
ProgressChangedEventHandler 进度改变事件 用于画进度条
CancelAnsync() 取消后台任务
IssueVisionWeb :
IssueVisionWebservices.asmx:
IVData: 组件. 调用dataadapter实现数据操作,含业务逻辑.
SecurityHelper: 封装了安全认证操作
Common: 读取配置
EventLogHelper: 辅助操作EventLog
IssueVision:
WebServiceLayer: 提供WS访问的中介. URL从配置文件读取. CredencialHeader从登陆用户取得.
UserSettings: 当前用户的状态和状态的本地缓存
SerializationHelper: 数据到文件的加密存储
DataProtection: 调用Win32API实现的加密解密
LoginForm: 登录. 被MainForm调用. 窗体淡入淡出.
IssueSubject: ISubject 业务模型Model
SaveIssueData() 保存业务数据到本地文件
LoadIssueData() 加载业务数据
AppUpdator: SmartClient的关键。自动保持版本更新。
数据采用DataSet保存和传递,不论客户端还是Web服务端。
数据访问采用自动生成的DataAdapter。
IssueSubject作为整个程序的业务模型,对外提供数据、数据时间、存储、更新等动作。
窗体中的各个显示控件监听数据变化事件,有变化时调整自身需要显示的部分。
冲突检测:
客户端从Dataset.GetChanges()取得有修改的数据通过Web服务提交到服务器。
Web服务在提交用户的改动时监听DatatAdapter的UpdateError事件,把有冲突的数据放到Conflict表中返回给客户端。
实际上利用了DataAdapter的并非冲突检测功能。
WHY:
1. 客户端为什么没有使用IsolatedStorageObject来保存临时数据?
2. 冲突数据的保存是利用DataSet中新建的表Conflict。如果有N个业务表需要检查并发冲突,DS中就需要2N个表。是不是可以还放在原来的表中,只是设定一个RowError呢?
3. AppUpdater是不是可以注册到WindowsUpdate中,由系统一起完成呢?重复功能!
- IssueVision学习笔记一
- [原创]IssueVision 学习笔记(三)-----设计模式之OBSER
- 学习IssueVision,开发MyVision
- XSLT学习笔记(一)
- Castor学习笔记(一)
- CSS学习笔记一
- 汇编学习笔记(一)
- ArcXML学习笔记(一)
- C#学习笔记(一)
- AIX学习笔记(一)
- PHP学习笔记(一)
- 串口学习笔记(一)
- JetSpeed学习笔记(一)
- symbian学习笔记一
- JSP学习笔记一
- Eclipse学习笔记一
- Cryptopp学习笔记(一)
- J2EE 学习笔记 一
- SAP 模块中文解释 (From ERP网事随风)
- OpenSSL win+apache实现ssl的证书认证
- (转贴)一份界面规范(c/s),和大家共享
- MyEclipse开发jsf实例
- [组图]RJ45网线制作
- IssueVision学习笔记一
- Ping命令详解
- 关于linux学习总结
- 如何利用SDK来编译.Net程序?
- CodeSmith,SqlServer,C#中的类型对照
- 【读书笔记】Inside Microsoft SQL Server 2005 – T-SQL Programming
- log4j Example
- Linux下IPV6设置方法
- ActiveX控件的属性、事件和方法