学习WPF和MVVM的一些资源

winform VS wpf

从接触C#开始,GUI开发主要是用winform,VStudio也提供了方便的控件拖拽,简单快捷也意味着开发者的开发的空间缩小。当然针对设备上位机软件来说,稳定、方便、快捷是主要需求,用户基本都是研发人员和工厂操作工,对界面和绚丽的动画并没有强烈要求。(当然,当设备系统的复杂度升高后,简单的winform设计模式已经很难满足以后软件维护和升级改版)
而相对于wpf,GUI的设计更类似与web的设计方式,主要是用XMAL语言,类似于HTML,都是一种文本标记性语言。wpf极大解放了**.NET下的GUI设计,极大满足了人作为一个视觉动物的需求(人不只是看脸...)。所以,在编写客户端软件时,当winform无法满足需求是,选择学习wpf。本意只是想有用一个更加绚丽的GUI,但是没想到接触到了MVVM的设计模式,把之前学习django接触到的MVC**设计模式重新感受和体会了一下,发现其巨大的魅力。

Stop and Think

转行CS也有快大半年的时间了,前期是学习语言,接着就是自己找各自小项目练手,然后就进了小公司实习。到目前,经历过从前期的迷茫,到写个小脚本实现点有趣的事而兴奋,到整周封装通信协议的无聊码代码而又开始迷茫,体会了一番看山是山,看山不是山的境界(不知道贴不贴切)。开始质疑码农是否真的是码农的时候,是时候停下来看看CS的世界,有多么丰富多彩。重复劳动只是自己对工具和使用方式的不熟悉的惩罚,编程不就是替人们做一些重复性的劳动,而编程本身也应该是(当然,人工智能我觉得已经上升到了科学的高度,编程和代码只是一种表现方式)。

Learn Something New

这句话是我觉得最为重要的,不只是在CS的世界,而是可以上升到世界观的程度。当然,乔帮主比我总结的好太多了

Stay Hungry, Stay foolish

一些学习资源

总结

目前,刚接触MVVM设计模式,像打开了新世界的大门。之前就对winform编程中存在的问题很困惑,比如winform改版GUI风格大变的话,岂不是和控件绑定的事件都要重写,当系统大到一定,这简直是个灾难。况且系统扩展和移植都是一个巨大的问题,真的只想写完就跑路,什么维护升级都否认自己是开发者。