`
rcfalcon
  • 浏览: 228559 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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操作为例,下图表示各模块通信协作的时序



分享到:
评论

相关推荐

    b/s管理系统

    【标题】:“B/S管理系统”通常指的是基于浏览器/服务器(Browser/Server)架构的管理信息系统。这种架构模式在IT行业中广泛应用,特别是在企业信息化建设中,因为它具有高效、易维护、可扩展性强等优点。 【描述】...

    【开源】基于C/S架构的Android员工增删改查客户端

    【开源】基于C/S架构的Android员工增删改查客户端是一个典型的移动应用开发项目,主要目的是实现客户端对服务器端数据的交互,进行员工信息的管理。在这个项目中,学生将运用到Android应用开发的基本技能,包括UI...

    MVVM操作TabControl/AvalonDock/Frame

    这是纯粹通过MVVM方式操作导航框架的方式,其中TabControl是借用老外的方式,使用了两种样式绑定,而这种集合数据对象也能用在AvalonDock上面进行绑定,而Frame则使用Content绑定到集合中的数据对象,而数据对象使用...

    ios-MVVM架构的一次实践.zip

    本项目采用MVVM架构,重写iOS头条客户端,后续不断更新 本例基于AFN封装了网络请求系列库,以满足自己需求,后期易于扩展;使用JSONModel解析json数据;每个VC都有自己的ViewModel类用来处理网络请求和其他逻辑...

    用MVVM架构实现的计算器小程序实例,供WPF和MVVM初学者参考.

    用MVVM架构实现的计算器小程序实例, 包括MVVM架构的命令对象和消息通知对象,小计算器加减乘除的实现逻辑.页面布局等简单知识.供WPF和MVVM初学者参考. 参考代码: /// /// 加法命令 /// </summary> public ...

    common-android,使用mvvm+coroutines/rxkotlin实现干净架构的常见android类/实用程序.zip

    这个开源项目"common-android"是针对Android平台的一个实用库,主要利用MVVM(Model-View-ViewModel)架构模式,结合Coroutines和RxKotlin来提升性能和简化异步操作。 1. MVVM架构: MVVM是一种设计模式,模型...

    Android mvvm 框架,最流行的mvvm demo

    在Android开发领域,MVVM(Model-View-ViewModel)架构模式已经成为了现代应用程序设计的主流选择。本项目“Android mvvm 框架,最流行的mvvm demo”旨在提供一个无bug的示例,帮助开发者深入理解并实践MVVM框架在...

    C#之 MVVM演示及基本使用!

    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 ...

    Android架构设计(MVC/MVP/MVVM)

    本项目深入探讨了三种主流的Android架构模式:MVC(Model-View-Controller)、MVP(Model-View-Presenter)以及MVVM(Model-View-ViewModel)。以下是对这些架构设计模式的详细解释: 1. MVC(Model-View-...

    C#MVVM架构 简单实例可以运行

    **C# MVVM架构简介** MVVM(Model-View-ViewModel)是一种软件设计模式,尤其在开发WPF、UWP和Xamarin等基于.NET Framework的桌面应用或移动应用时广泛应用。该模式源自经典的MVC(Model-View-Controller)模式,但...

    WPF经典编程实例/C#/.NET/MVVM/WCF/XAML/WinForm

    本课程通过一个个实战的案例,详细介绍了在WPF编程中用到的各种技巧,帮你进一步掌握WPF这种优秀的编程框架。也许你曾经为了一个WPF又酷又炫的功能,查遍资料却终无所获,最后无奈遗憾放弃。如果你学习了这门课程,...

    iOS MVVM架构

    **iOS MVVM 架构详解** MVVM(Model-View-ViewModel)是一种设计模式,源自微软的WPF(Windows Presentation Foundation)平台,并逐渐在移动应用开发领域,尤其是iOS开发中流行起来。它旨在提高代码的可测试性、可...

    Android MVVM架构源码

    Android MVVM架构是一种现代化的应用程序开发模式,它在Android生态系统中越来越受到青睐,尤其是在Jetpack库的支持下。MVVM(Model-View-ViewModel)模式强调数据驱动和组件解耦,提高了代码的可测试性和可维护性。...

    Android-Android设计架构实践对现在流行的MVCMVPMVVM架构简单实现

    本实践主要探讨了三种当前广泛使用的Android架构模式:Model-View-Controller(MVC)、Model-View-Presenter(MVP)以及Model-View-ViewModel(MVVM)。我们将详细解析这三种架构模式的核心概念、优缺点,并通过实际...

    ios-MVVM架构简单使用.zip

    使用mvvm模式写的简单的电影列表demo github地址:https://github.com/zhangjiahuan8888/mvvmDemo/tree/master 各位如果觉得有帮助,帮忙给个star,万分感谢

    swift-mvvm架构简单使用

    Swift中的MVVM(Model-View-ViewModel)架构是一种现代编程模式,它是在MVC(Model-View-Controller)基础上发展起来的,旨在更好地分离关注点,提高代码的可测试性和可维护性。MVVM模式主要由三个核心组件构成:...

    Android mvvm 架构设计

    代码是为学习mvvm 准备设计的。代码是为学习mvvm 准备设计的。代码是为学习mvvm 准备设计的。代码是为学习mvvm 准备设计的。代码是为学习mvvm 准备设计的。代码是为学习mvvm 准备设计的。代码是为学习mvvm 准备设计...

    MVVM架构DEMO

    **MVVM架构详解** MVVM(Model-View-ViewModel)是一种设计模式,广泛应用于现代UI开发,特别是诸如WPF、UWP、Xamarin以及Angular等框架。MVVM旨在提高应用程序的可测试性和可维护性,通过解耦视图(View)、模型...

    C#开发B/S后台管理系统

    在IT行业中,B/S(Browser/Server)架构是一种常见的软件应用模式,主要应用于网页应用程序,尤其是后台管理系统。这种模式下,用户通过浏览器访问服务器上的应用,实现数据的交互与处理。"C#开发B/S后台管理系统...

    AndroidArchicture,使用mvvm和数据绑定的android架构.zip

    本项目"AndroidArchitecture,使用mvvm和数据绑定的android架构"是一个开源项目,旨在展示如何利用现代Android架构组件,特别是Model-View-ViewModel (MVVM) 和数据绑定(Data Binding)来构建高效的应用。下面我们将...

Global site tag (gtag.js) - Google Analytics