前言

经常遇到还没开始学习C#的学员问我:

Winform和WPF,我应该先学什么?

在很多人眼里,WPF是一门高级技术,而Winform是比较Low的。

今天跟大家聊聊,关于WPF和Winform。

简单聊聊

首先我认为Winform不算是过时的技术,WPF也不算是什么新技术,两者并不是你死我活的竞争状态,还是不同阶段的不同选择。

就像是汽车一样,Winform偏向于家用代步车,WPF偏向于高级的轿车,不同的价格,不同的性能,不同的定位。

对于刚毕业几年的年轻人来说,家用代步车无疑是更适合的,但是你只要努力,你肯定会到达购买高级轿车的阶段。

所以我的建议是对于初学者来说,还是要先学习Winform,因为学习Winform的成本会更低,学习WPF,你要学习的内容会更多,至少要多学习一门XAML语言。

然而,不管是代步车还是高级轿车,都需要有驾照,你才能上手,对于Winform和WPF来说,这个驾照就是C#编程语言。

两者区别

如果要说Winform和WPF最大的区别在哪里?

我觉得一方面是布局方式,一方面是驱动方式。

首先谈下布局方式,一般来说,界面布局的方式有两种,一种是拖控件,另一种是通过布局控件来实现,而Winform主要是以拖控件的方式为主,配合布局控件做整体布局,而WPF则恰恰相反,虽然也可以拖控件,但是很少这么做,主要是通过编写XAML代码来实现。

再来说下驱动方式,Winform是基于事件驱动,WPF是基于数据驱动,以操作一个按钮,执行一个查询操作为例,Winform是在按钮的点击事件里,写好查询代码,然后将结果展示在数据控件里,而WPF则是通过按钮绑定一个动作方法,数据控件绑定好数据源,在方法里查询即可,这样做的目的就是尽量减少前后端的耦合。

 

写在最后

无论是Winform还是WPF,都是一种开发桌面程序的技术,都需要采用C#语言来编程。

不管是什么语言,什么技术,对我们来说,只是一个工具而已,适合自己的才是最好的,能解决问题的就是好的,就像那句谚语,白猫黑猫,能抓老鼠的就是好猫。

不管是Winform还是WPF,最终都是为了项目开发,所以最好的方式是两者都要学会,然后结合项目的实际需要、开发周期、开发成本来综合选择.