使用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操作为例,下图表示各模块通信协作的时序
分享到:
相关推荐
这是纯粹通过MVVM方式操作导航框架的方式,其中TabControl是借用老外的方式,使用了两种样式绑定,而这种集合数据对象也能用在AvalonDock上面进行绑定,而Frame则使用Content绑定到集合中的数据对象,而数据对象使用...
常见的android/poko类/utils,用于带有mvvm+coroutines/rxkotlin的干净架构
本项目采用MVVM架构,重写iOS头条客户端,后续不断更新 本例基于AFN封装了网络请求系列库,以满足自己需求,后期易于扩展;使用JSONModel解析json数据;每个VC都有自己的ViewModel类用来处理网络请求和其他逻辑...
用MVVM架构实现的计算器小程序实例, 包括MVVM架构的命令对象和消息通知对象,小计算器加减乘除的实现逻辑.页面布局等简单知识.供WPF和MVVM初学者参考. 参考代码: /// /// 加法命令 /// </summary> public ...
using MVVMTest.ViewModel; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Data; using ...
通过java语言编写的一个Android程序,项目中围绕着MVC/MVP和MVVM架构设计,功能完整,注释齐全,同一个需求,同一套布局,同样的功能,不同的架构设计,只需要一个积分,你值得拥有!
使用mvvm和数据绑定的android架构
AndroidMVVM架构是在jetpack上的架构,此Demo为一个酷欧天气Jetpack版,可运行出结果,重点为架构学习。
本课程通过一个个实战的案例,详细介绍了在WPF编程中用到的各种技巧,帮你进一步掌握WPF这种优秀的编程框架。也许你曾经为了一个WPF又酷又炫的功能,查遍资料却终无所获,最后无奈遗憾放弃。如果你学习了这门课程,...
Android mvvm 框架,最流行的mvvm demo 无bug
Android 设计架构实践,对现在流行的MVC、MVP、MVVM架构简单实现
使用mvvm模式写的简单的电影列表demo github地址:https://github.com/zhangjiahuan8888/mvvmDemo/tree/master 各位如果觉得有帮助,帮忙给个star,万分感谢
MVVM简单Demo,方便迅速了解MVVM架构和KVO传值机制
代码是为学习mvvm 准备设计的。代码是为学习mvvm 准备设计的。代码是为学习mvvm 准备设计的。代码是为学习mvvm 准备设计的。代码是为学习mvvm 准备设计的。代码是为学习mvvm 准备设计的。代码是为学习mvvm 准备设计...
ExtJs学习实战之 订单模块 MVVM架构,下面分享的是实战的源码,有需要的可以下载看看。如果没有积分额,建议看一下这篇文章:代码都在里面: https://blog.csdn.net/xiaozhegaa/article/details/82874695
WPF工业上位机 MVVM 实时趋势 历史趋势 报表
标准mvvm的架构....
MVVM架构DEMO,希望能帮助你了解MVVM。
MVVM模式MVVM模式MVVM模式MVVM模式MVVM模式MVVM模式MVVM模式MVVM模式MVVM模式
C#MVVM架构 简单实例可以运行