天天看點

為什麼很多人“看不起”Winform?

-Begin-

經常遇到還沒開始學習C#的學員問我:

Winform和WPF,我應該先學什麼?

在很多人眼裡,WPF是一門進階技術,而Winform是比較Low的。

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

首先我認為Winform不算是過時的技術,WPF也不算是新技術,兩者并不是你死我活的競争狀态,還是不同階段的不同選擇。

就像是汽車一樣,Winform偏向于家用代步車,WPF偏向于進階的轎車,不同的價格,不同的性能,不同的定位。

對于剛畢業幾年的年輕人來說,家用代步車無疑是更适合的,但是你隻要努力,你肯定會到達購買進階轎車的階段。

是以我的建議是對于初學者來說,學習Winform的成本會更低,學習WPF,你要多學習一門XAML語言。

而且不管是代步車還是進階轎車,都需要有駕照,你才能上手,對于Winform和WPF來說,這個駕照就是C#程式設計語言。

但是有了一定程式設計經驗,或者是把Winform玩得比較熟了之後,你再接觸WPF,會更加容易上手。

如果要說Winform和WPF最大的差別在哪裡?

我覺得一方面是布局方式,一方面是驅動方式。

首先談下布局方式,一般來說,界面布局的方式有兩種,一種是拖控件,另一種是通過布局控件來實作,而Winform主要是以拖控件的方式為主,配合布局控件做整體布局,而WPF則恰恰相反,雖然也可以拖控件,但是很少這麼做,主要是通過編寫XAML代碼來實作。

再來說下驅動方式,Winform是基于事件驅動,WPF是基于資料驅動,以操作一個按鈕,執行一個查詢操作為例,Winform是在按鈕的點選事件裡,寫好查詢代碼,然後将結果展示在資料控件裡,而WPF則是通過按鈕綁定一個動作方法,資料控件綁定好資料源,在方法裡查詢即可,這樣做的目的就是盡量減少前後端的耦合。

無論是Winform還是WPF,都是微軟的一種桌面技術而已,都需要采用C#語言來程式設計,是以不要去論語言或者技術的好與壞,這樣眼界會變窄。

不管是什麼語言,什麼技術,對我們來說,隻是一個工具而已,适合自己的才是最好的,能解決問題的就是好的,就像那句諺語,白貓黑貓,能抓老鼠的就是好貓。

可能我們現在主要用的語言是C#,但是也許某一天,我們也會去學python、C++、Java,當具備一定的程式設計思維和程式設計能力之後,無論以後是學什麼語言,我們都會很快上手。