首页/新闻资讯/正文详情

自己开发MVVM框架

发布时间:2026/9/24 0:37:52 来源:云帆数科 栏目:资讯中心
自己开发MVVM框架
由于之前自己做了一套框架但是还没有趋于完善所以暂时不准备共享出来主要是WPF和Silverlight版本更替比较频繁且没有加入模板及智能感知。对于开发一套MVVM框架具体需要做一下几个操作1要能解决Model、View和ViewModel之间的强关联这也是核心功能尤其是View和ViewModel不管是使用IOC Container还是MEF都行。2命令和附加事件的处理对Command进行封装满足多参数、方法过滤、泛型、异步回调等对附加事件进行封装使它像使用命令一样简便。3由于View和ViewModel是弱关联或者是无关联如何让它们进行通信这就需要加入Messenger机制。4前面引入了消息机制一般是静态化处理如何来管理、实例化、清除消息呢这里得建立一套消息机制。5由于前面采用了弱关联或者无关联并且引入了消息机制所以需要对操作有日志记录否则出了问题无法快速定位及追查原因。6如何统一管理ObservableObject、PropertyObserver等这些对象呢所以得自己建立一套变更体系。7对常用功能及操作进行封装提供一些常用类库以及UI Helper等。总之开发MVVM框架不能求全只要适合项目就行也不要想一次就能完善整个框架在使用时不断根据需求扩展才是明智之举。另外附加三点开发MVVM框架心得1充分借鉴其他开源框架研究各个框架的不足和优势然后把思想贯穿于自己的框架中当然有些常用功能代码也可以直接借鉴过来。2对于这样一个比较庞大的框架使用TDD反复重构无疑会提高开发效率同时也能提高框架的可维护性和稳定性这也是团队使用的一个前提。3框架会使用一些常用设计模式有了它们可以让框架更具有扩展性同时也减少了开发成本、增加了可维护性。比如观察者模式消息的发布、订阅、触发、中介者模式直接通信的类转化为中间类来处理隔离耦合、外观模式提供一个简单的接口出来在内部进行大量的封装这样就可以起到易用且功能强大的目的、装饰模式原来已经稳定的功能模块如果在不改变原有结构的基础上进行扩展无疑这是一个很好的实践等。总结上篇WPF企业内训全程实录上主要讲解历史渊源、概念引入、基本阐述以及WPF的每个知识点。这篇主要主要围绕WPF开发模式、WPF团队协作和MVVM框架三个议题进行阐述。下篇将着重强调结合其他技术共同打造WPF项目、相关性能优化、以及部署与更新问题所以敬请期待另外如果有不懂的地方也可以参考之前写的WPF 基础到企业应用系列最后声明一下由于圣殿骑士才识浅薄所以以上观点只是个人的看法与心得遗漏和错误之处也敬请海涵。怀着技术分享与交流的态度分享出来希望各位多多

相关推荐

WPF企业内训全程实录(中)
WPF企业内训全程实录(中)

. WPF开发模式 提到WPF开发模式(这里通常所说的是Presentation模式,其他层的模式不在此列),大家可能会立马想到MVC/MVP/MVVM模式: 1,MVC:模型-视图-控制器(M… · 2026/9/21 11:54:32

题解:洛谷 B4555 [GESP202606 三级] 加密
题解:洛谷 B4555 [GESP202606 三级] 加密

【题目来源】 洛谷:B4555 [GESP202606 三级] 加密 - 洛谷 【题目描述】 小杨同学有一串数字,想把它们变成另一串数字,这个过程叫做加密。 他有一本密码本,密码本告诉你:每个数字应该变成哪个数字。 数字一共有 10… · 2026/9/8 15:08:01

了解并使用MVVM框架
了解并使用MVVM框架

到底有哪些开源MVVM框架? 前面介绍了WPF的基本概念和一些相关知识,我们了解到开发WPF应用程序可以使用现成的框架和模式,最为合适的莫过于时下正热的MVVM模式,所以这里我们也列出针对MVVM模式的已有开源框架: 图3 上面… · 2026/9/20 8:27:43

C语言Win32超级玛丽:纯GDI游戏源码与工程实践指南
C语言Win32超级玛丽:纯GDI游戏源码与工程实践指南

简介:本资源是一份基于C语言开发的2D平台跳跃游戏——超级玛丽的完整源码实现,面向C语言初学者与游戏开发入门者,旨在通过经典游戏案例深入理解底层游戏逻辑、内存管理与图形渲染原理。压缩包共34个文件,含14个音效MP3&#xff08… · 2026/9/24 0:37:49

2024Web前端求职指南:从基础到架构的90天备战路线
2024Web前端求职指南:从基础到架构的90天备战路线

聊个大实话:2024年的Web前端求职,已经不那么容易靠背八股文混进大厂面试了。我身边不少朋友和候选人都在问,前端是不是凉了?还有没有机会冲一线大厂?这篇文章不打算灌鸡汤,我只想基于自己观察到的行业趋势、… · 2026/9/24 0:37:49

uni-app组件样式定制:从scoped隔离到深度选择器实战
uni-app组件样式定制:从scoped隔离到深度选择器实战

深夜十二点,你盯着uni-badge上那个死活不肯变色的圆点,试了::v-deep、试了!important、甚至把样式文件翻了个底朝天,它依然顶着默认的红色站在那里。这种体验做过 uni-app 的人应该都不陌生——组件样式定制,难的不是写 CSS&#… · 2026/9/24 0:37:49

老式PHP论坛index.php入口架构深度拆解
老式PHP论坛index.php入口架构深度拆解

我看到"sis forum index.php"这类搜索词时,第一反应不是某个具体站点,而是一个非常典型的技术形态:老式PHP论坛系统的入口文件架构。index.php这个文件名,对老一辈站长来说是再熟悉不过的东西——它是整个站点的流量闸门… · 2026/9/24 0:37:43

汽车制动系统故障诊断与维修:从现象定位到精准修复的完整指南
汽车制动系统故障诊断与维修:从现象定位到精准修复的完整指南

简介:汽车制动系统故障诊断与维修毕业论文文档,面向汽车维修专业学生、一线维修技师及相关技术人员,系统梳理制动系统从结构原理到故障排除的完整知识链路。资源重点涵盖制动系统四大组成部分、盘式与鼓式制动器的结构差异与适用场景、真空增… · 2026/9/24 0:37:18

NS2代码再挖掘:从tcl仿真到awk结果提取的完整实践
NS2代码再挖掘:从tcl仿真到awk结果提取的完整实践

简介:这是一份面向NS2入门者与网络仿真研究者的代码包,聚焦网络协议仿真、路由算法、移动模型与性能统计等核心场景。通过28个文件、623KB的紧凑组织,读者可直接运行Tcl脚本观察TCP拥塞控制、DSDV路由决策和Random Waypoint移动节点的行为&am… · 2026/9/24 0:37:18

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码