前言:接触了有快一个月wpf了,从才开始的控件布局,数据绑定,依赖属性,模板,样式,慢慢的开始接触wpf所讲的mvvm框架,也慢慢有mvvm的总体感觉了,下面就mvvm架构总结下肤浅的认识,算是入门前的一个总结,也为后期的继续开发做个基础认识,如有不对的地方,请多多指教
首先就微软推出的新的这种界面方式表示赞同,因为随着软件的发展,越来越多的需求被融入到了软件架构中,不同的数据结构在后台运行,势必会影响整个程序的运行,增加软件开发的复杂度和难度,尤其是有些后台数据内容需要在前端进行显示,已有的winform桌面程序开发,存在着前台展示和后台数据逻辑间耦合性太大的问题,需要开发人员有不光有很强的后台逻辑思维,还要能处理前端和后台的交互问题,而且对于一个软件项目的分工也不很明确,虽然有usercontrol存在,但是仍不能解决根本问题,况且,随着大数据技术的发展和应用,软件开发的趋势越来越偏离原有的事件驱动这种方式,使数据驱动变得越来越成为一种流行,正是这种普遍问题的存在,wpf应运而生。
wpf(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。(楼主太懒了,此处copy于百度百科),而其核心数据绑定,真正实现了数据驱动页面,体现了数据时代的特点。扯远了好像,咳咳,下面开始MVVM了
先说先这四个字母是Model-view-viewmodel(模型-视图-视图模型)的缩写形式,通常适用于wpf和sillverlight开发。下面是借鉴网上的图来直观的感受下这种架构模式
这个流程图还是很清晰的,views由window、page、usercontrol等构成用于和user进行用户界面交互,并通过databinding与viewmodel建立联系
viewmodels由一组命令,可以绑定的属性,操作逻辑构成,因为view与viewmodel进行了解耦,我们可以对viewmodel进行Unit Test
Models可以是实体对像或者web服务
这样其实整个的MVVM就很好理解了,剩下的就是在每个块之间的具体联系了,其实也挺难,虽然说架子搭起来后就只剩下往里面填东西了,可是怎么填,填什么,怎么很好的协调各个组件间的关系,层次结构还是需要费些脑子的,不过开发多了可能就都毁了,希望自己能快些适应并成功做出些东西吧。