经常遇到还没开始学习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,最终都是为了项目开发,所以最好的方式是两者都要学会,然后结合项目的实际需要、开发周期、开发成本来综合选择.