打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MVVM实时呈现C/S架构

使用WPF推崇的MVVM模式,是MVC模式的一种变体。

以数据绑定为核心的思想,可以使得在开发中,数据组织变得十分便利。


这里我向大家展示我在一个项目中基于MVVM的实时呈现C/S架构设计,可以实现任何一个客户端修改数据,即立即在所有客户端及数据持久层同步。



服务端:

       服务端负责处理审编系统与数据库通信,同步各个客户端编目数据,并且进行后台的核心业务逻辑处理。

       【通信层】:采用双工模式通信:

ReviewServiceAPI同步返回接口,每个客户端连接上之后都会新建一个实例,负责与该客户端进行交互。客户端成功登陆后会在服务端维护该session,并且在一定时间内没有数据交互则自动过期session,释放该客户端占用的资源。其主要提供数据项的增、删、改、查接口及业务接口(如登陆、退出等)

同时采用 订阅者-发布者的C/S通信模式,每个客户端连入时均在服务端构建其侦听器实例,由MessageCenter进行管理,在数据项有修订后,通过MessageCenter向订阅相关消息的客户端可靠的发布消息。同时MessageCenter也负责对过期的订阅进行回收。

       【数据访问层】:封装对数据源的访问

              数据源可以以各种形式存在,目前以DB+内存数据形式。

在DB层面主要进行关系数据库到对象实体的绑定(O/R Mapping),并提供各个数据实体类。

内存级别与相关管理器通信,如WatcherManager等。

       【核心逻辑层】:封装核心业务逻辑

              包括片段合并触发机制、合并算法,编辑项锁定等核心业务。

       【工具】

              包括日志管理器、任务池等。


客户端:

       客户端是编辑、审核人员的操作入口,与服务端通信,完成编目、发布等操作,并且能够多实例同步数据。采用MVVM设计模式进行界面、数据的解耦。

       【通信层】与服务端通信

              Client对服务端接口进行适配,同时负责若干常用数据的缓存。

              Listener是订阅的侦听器,侦听服务端发送的相关数据,进行数据的同步。

       【数据实体层 Model】原始数据维护者

用来维护与服务端同步的数据,其数据实体的具体数据结构完全映射服务端DAL层维护的数据结构。

       【界面显示数据绑定层 ViewModel】

使用Model构造界面绑定数据,并界面操作提供命令接口,进行Model层的同步。

       【界面层 View】

              负责数据展示和用户控制响应。对ViewModel层进行数据双向绑定,同步刷新。

 

异步任务:

       客户端和服务端为了使得传输数据趋于平均化、非阻塞,均使用异步任务方式。具体实现为需要进行通信时将任务推入任务池,由后台线程负责任务池的处理。

       以常见的update操作为例,下图表示各模块通信协作的时序



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
智能汽车软硬分离探索和实践分享
【ABMS架构】以数据为中心的作战技术
电商系统研究学习:前端架构 vue
WPF 组件间通信 MVVM 进行解耦
都是基于.NET平台,WPF能取代Winform吗?
对MVC、MVP、MVVM的理解(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服