MVVM(微软的WPF基础)-MVC(常用开发模型/设计)-WPF(微软.NET Framework

最近看 好多人说IOS MVC 过时了 要用MVVM 什么什么的,感觉 很新奇,就去搜了一下,发现原来所谓的MVVM就是 之前微软在10年左右就推出的WPF ,鄙人不才,搞过两年多的C#开发,因此 做了下比较:

首先来看一下 WPF

WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。

那么 应用说道MVVM就是:

再来看下经典的MVC:

其实这就是 把VIEW层 再次分一下 分成view和view controller层 这让我想起了 之前的三层架构和MVC

三层架构是最基本的项目分层结果,而MVC则是三层架构的一个变体,MVC是一种好的开发模式。首先你要明白MVC分别代表的是什么意思.
M 即Model(模型层),主要负责出来业务逻辑以及数据库的交互
V 即View(视图层),主要用于显示数据和提交数据
C 即Controller(控制器),主要是用作捕获请求并控制请求转发

三层:UI 界面层 BLL 业务逻辑层,DAL数据访问层,Model 实体层
MVC中的的M 不是三层中的Model(实体层),他其实包括三层中的 BLL,DAL,Model,这是非常要注意的,这也是他们之间的区别的关键所在

其有点有如下:
低耦合性
高重用性和可适用性
较低的生命周期成本
快速的部署
可维护性
有利于软件工程化管理

当然优点也有缺点,那就是内部结构复杂,不容易理解,文件数量大,管理难度自然也就大

其实 本来是没有区别的 或者说 是相互关联的 具体就是

把不同的层次打乱 然后拆分出新的层次,这就是区别,额,感觉 现在的模式都是这样 ,可能对易老程序员来说,原来的用的顺手了,但是 对于初学者,这些感念简直就是噩梦,MVC是一种万金油一样的存在,你说他是设计模式也好,框架也好,总之我认为 好用就行,MVVM 通俗来说是这样是实现的

Model层是少不了的了,我们得有东西充当DTO(数据传输对象),当然,用字典也是可以的,编程么,要灵活一些。Model层是比较薄的一层,如果学过Java的小伙伴的话,对JavaBean应该不陌生吧。

ViewModel层,就是View和Model层的粘合剂,他是一个放置用户输入验证逻辑,视图显示逻辑,发起网络请求和其他各种各样的代码的极好的地方。说白了,就是把原来ViewController层的业务逻辑和页面逻辑等剥离出来放到ViewModel层。

View层,就是ViewController层,他的任务就是从ViewModel层获取数据,然后显示。

最后 放几张 我从网上找的别人设计的MVVM的 框架 目前我也正在研究 具体是MVC好还是MVVM好 仁者见仁智者见智,,,

时间: 2024-10-08 12:16:01

MVVM(微软的WPF基础)-MVC(常用开发模型/设计)-WPF(微软.NET Framework的相关文章

WPF 基础到企业应用系列2——WPF前世今生

1.开篇前言       很多时候了解一项新技术的历史和趋势往往比这项技术的本身价值还要重要.WPF作为一项新技术(已经三年多了,或者应该叫老技术了),我们都有必要了解它的来龙去脉,尤其是公司的CTO.技术总监.架构师等决策层,因为他们对技术的选型及应用具有决定权.对于开发者来说,了解自己正在从事的这个技术的前世今生,有助于我们更好的认识技术本身的价值,也可以避免我们少走一些弯路(圣殿骑士 就走过很多弯路,所以对此比较感慨).从IT技术发展的这些年可以看出,技术对于各大公司只是竞争的一种手段,而

WPF 基础到企业应用系列5——WPF千年轮回 续前缘

一.摘要 首先非常高兴这个系列能得到大家的关注和支持,前端时间身体状况不适,所以暂停了更新,对此表示非常抱歉,以后会逐渐加快进度.只是因为这是一个非常长的系列,我也想把它写好,所以以后也会慢慢来,在这个系列的过程中也会穿插发一些其它文章,比方Windows Azure.设计模式.WCF.Silverlight等,同一时候也会发一些自己的技术随感和心得.反正仅仅要自己写得开心且对大家有帮助即可.因为自己才疏学浅且是对这些技术的使用总结和心得体会.错误之处在所难免.怀着技术交流的心态,在这里发表出来

测试小白基础知识---常用的测试用例设计方法

软件测试的核心是测试用例的编写,是每个测试人员必须掌握的技能!! «««测试第一原则:所有的测试,都必须追溯到需求: «««测试第二原则:测试是无穷尽的,测试必须终止 «««测试用例的设计方法: 一.等价类划分法 某个输入域的子集合,在该子集合中,所有的输入数据对揭露软件中的错误都是等效的. 等价类划分有效等价类和无效等价类 有效等价类:输入的数据,是符合需求的,是合理的合法的. 无效等价类:输入的数据,是不符合需求的,是不合理的. «««等价类划分法用例设计原则: 1.划分有效和无效等价类,为

开发模型

系统开发模型: 即,系统架构,是指整合应用系统程序大的结构.经常提到的系统结构有两种:三层架构 和 MVC. 这两种架构,既有区别,又有联系.但是这两种结构的使用,均是为了降低系统模块间的耦合度. (便于开发时的分组) 传统的JavaWeb 项目的系统开发模型大体经历了四个阶段: 纯JSP ---> JSP+JavaBean 的Model1 --->MVC的Model2   ---> MVC+三层架构 1. 纯JSP “纯 JSP”开发模型中,将所有的业务处理.数据显示功能都交由JSP页

软件开发模型

作为一名程序员,开发过程就是一个最好的学习过程,在开发的过程中,不断寻找新的解决办法,学习新的开发技术,能更好的开阔我们的思路,让我们不断的进步. 临近毕业,着手准备毕业设计,我决定做一个在线考试系统,预计4月底完工,花费这么久来做这个项目,主要是因为,我要利用这个项目,将自己大学四年,学到的,没学到的东西 进行一次重新学习,第一站,软件开发模型. 软件开发模型(software development model)是指软件开发的整个过程,包括需求,设计,开发(写代码),测试,甚至是维护有时候也

Angular JS从入门基础 mvc三层架构 常用指令

Angular JS从入门基础  mvc模型 常用指令 ★ 最近一直在复习AngularJS,它是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心的是:MVC.模块化.自动化双向数据绑定.语义化标签.依赖注入等等. 1.常用指令 AngularJS 通过指令扩展了HTML,且通过表达式绑定数据到 HTML.下面我们看一下AngularJS中的常用指令. (1).基本概念 指令:AngularJS中,通过扩展HTML的属性提供功能.所以,ng-

ASP.NET MVC+EF5 开发常用代码

Asp.Net Mvc,EF 技术常用点总结 1.Asp.Net MVC a)获得当前控制器名和当前操作的名称(action) 1.Action 中 RouteData.Values["controller"].ToString(); RouteData.Values["action"].ToString(); 2.页面中(view) ViewContext.RouteData.Values["controller"].ToString().To

WPF 基础到企业应用系列1——开篇故意

參考资料 提到參考资料,大家第一感觉就是MSDN,当然我也不例外.这个站点基本上是学习微软技术的首选站点,除了这个站点以外,我还參考了非常多其它的社区和站点,基本上都在.NET 技术社区之我见(英文篇)做了介绍,比方CodeProject.CodePlex .windowsclient.C# Corner等,除了这些站点另一些国外技术专家blog. 1.       Programming Windows Presentation Foundation http://www.amazon.com

WPF基础到企业应用系列7——深入剖析依赖属性(WPF/Silverlight核心)

一. 摘要 首先圣殿骑士非常高兴这个系列能得到大家的关注和支持.这个系列从七月份開始到如今才第七篇,上一篇公布是在8月2日,掐指一算有二十多天没有继续更新了,最主要原因一来是想把它写好,二来是由于近期几个月在筹备"云计算之旅"系列,所以一再推迟了公布进度. 之前一直都没有想过要录制视频.基本的原因还是怕自己知识有限,从而误导他人,所曾经几次浪曦和51CTO邀请录制视频,我都以工作忙.公司内部培训须要时间和自己有待提高等理由委婉的拒绝了,说实在的.自己也知道自己还有非常多地方有待提高.还