对ASP.NET MVC的初步理解以及与MVVM的比较

0x00 废话

上高中的时候(2000年至2001年)做过一段时间星际争霸主题的网站,那时候做网站用的是纯静态的HTML页面。自己做一个类似模板的东西,更行的时候复制一下模板然后修改内容,最后将更新的内容在主页上链接过去,写点站长手记什么的,一次更新就算完成了。发布也很简单,把更新的页面上传替换就可以了。访问的URL路径就是服务器上存储的物理路径。大学的时候短暂看过ASP.NET Webform,感觉有点理解不了,没有使用需求就没继续学下去。

0x01 学习ASP.NET MVC的契机

因为业务需求,之前做得比较多的是Windows的桌面开发,从Winform开始,去年过渡到了WPF。不过现在Web应用实在是太强大了,而且后面有几个需求做成Web应用确实更合理,所以打算学习一下。最开始打算学习Java的一套解决方案,但看到ASP.NET现在有MVC框架,打算先试一下。

0x02 对ASP.NET中MVC的理解

今天大概看了一下,对ASP.NET的MVC有了一定的了解,至少不再像以前那样稀里糊涂了。之前看到讲Web应用的MVC模式总是画出M、V、C三个框,几个箭头指来指去,看的云里雾里的。下面我把自己对MVC的理解画了个简单的框图:


至于其他的MVC框架是不是用这样的方式处理我就不太清楚了,目前没有需求,不着急使用,后面计划通过实例慢慢学习。

0x03 MVC与MVVM的比较

去年开始使用WPF以MVVM的模式开发桌面应用,之前看过网上有文章比较过MVC和MVVM,说只是Controller换成了ViewModel,实现View和Model的低耦合,没有本质区别。说起来确实是这样的,不过MVC和MVVM还是存在一些差异的。我开始使用MVVM时间也不长,就个人的理解MVVM大概如下图所示:


能比较直观的看出来,在MVVM中View和Model是没有直接联系的。View通过绑定ViewModel中的依赖属性实现View和ViewModel中数据的双向更新。这样在业务逻辑中只需要专注于操作ViewModel中的数据便可将改变反映到View中。View只关心绑定的依赖属性,并不知道Model的存在。这样实现了View(视图)和Model(数据)的解耦。这种情况下我们甚至可以直接删掉当前View,换一个全新的View,只要将需要将View中的元素绑定到相应的依赖属性,无需对业务逻辑做出任何改变,View也可以很好的运行。

0x04 最后

虽然使用WPF不到一年,但现在感觉除非有特殊要求,再也不想回到Winform了。希望学习ASP.NET也能有类似的体验。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值