上一個教程對比的5個方向共7個界面框架,都是非常權威,應用很廣泛的庫,絕對是非常穩定,並且能夠做出常見的界面出來,可以放心大膽的
用在項目里
。
但那7個界面框架再好,也總是沒有絕對的優勢,不然其他框架早就淘汰了,那么以下幾個才是目前真正的頂級理想狀態(過幾年可能這些理想狀態也不理想啦~):
1、用3D游戲的界面來做客戶端界面,3D游戲的效果當然是世界頂級的啦,如果客戶端能做成那樣的效果,當然是非常爽,但其資源占用就決定了不可能用來做客戶端。
那么我們退而求其次呢? 用2D的總行了吧? 其資源占用還是太大了!
那再退一步呢? 不需要動畫效果和各種特效,只需客戶端那樣靜態的頁面。由於游戲框架做界面比客戶端框架靈活N倍,這樣就可以即有游戲框架的靈活性,又有客戶端一樣的低資源占用,豈不是客戶端界面最好的組合? 嗯,技術方面可行,但是游戲框架本來就不是為客戶端而生的,所以要調整成客戶端框架,普通人只能小打小鬧,做一個界面出來可以,但要做出通用的框架,難度就非常大了。 所以,
如果沒有大牛去提煉游戲框架,那么用游戲框架做客戶端就是扯淡。
馬雲說過:如果一個點子有70%的人贊同,就說明這個點子已經被千萬人想過了。 既然Alberl能想到這個,那肯定很多大牛已經做過這種事情了,Alberl也搜到過一些開源庫,但不成氣候,不然早就火了~
2、用.NET 和 Native C++,既然沒有好用的游戲框架,那我們來點現實的吧,用WPF做界面,用C++做邏輯。
其實如上個教程所說,.NET已經被廣泛應用了,很多領域根本無需Native。
在工業領域,比如考勤機、點菜機、KTV等領域,由於終端數量不多,都是由廠家直接安裝軟件,並且不需要很炫的效果,所以.NET的大小根本就不是問題,而運行也很快,因此在這些領域,那幾個問題根本就可以忽略不計。
而在移動領域,之前微軟的WinCE、WinMobile都是用C#做界面,非常方便。現在的WP8也是用C# + SilverLight,根本就不支持C++開發,所以更不用談Native C++了。而android最開始也不支持C++,所以現在真的不是C++一統天下了,就別想着什么事都用C++來搞定了,語言真的只是個工具而已。
那么轉向我們的
客戶端領域吧,上面已經說了,在非客戶端領域,要么對界面要求不高,要么已有其他框架代替,真的不用蛋疼界面,只有客戶端這個領域才是上不上下不下的。即使對於客戶端,
.NET除了要裝.NET庫以及慢點,其他方便真的是目前最好的了,91手機助手已經開了先河啦。但是現在這么多客戶端在用C++,咱們還是得用C++做界面吧,那就還是不方便吧。
那么我們不用WPF的特效,只用靜態效果,就不會感覺到慢了吧,只需要低版本的.NET庫就行了,也就是幾十M,並且只需要在XP下裝。不過如上個教程所說,除了.NET大以外,更重要的是程序員的水平,即使是C++的高手,全部切換過去做.NET,也不見得能搞得好,所以.NET還是不能用,C++為啥就這么蛋疼呢o(╯□╰)o 但是微軟提供了一種折中的方案:用C++的語法,用.NET的功能,即
CLR。 這雖然離【.NET 和 Native C++ 】差一點,但好歹也是【.NET 和 C++ 】吧,這不就解決了剛剛的語言切換的問題嗎? 那看來就只剩下幾十M .NET庫的問題啦,
這聽起來很不錯
,
也確實能用將MFC的項目快速轉換到.NET,這樣老項目很快就可以用上.NET做漂亮界面啦。不過Alberl依舊相信一個道理:
不管宣傳得有多好,時間才是檢驗真理的唯一標准
。顯然,CLR出來很久了,沒有被廣泛運用起來。Alberl也說不出為什么,但Alberl會說:為什么這么久了,你還沒火起來?
可能有小伙伴想說了,以微軟的實力,做一個用Native C++寫邏輯,用.NET做界面,並且無需安裝.NET庫的框架出來,應該易如反掌吧? 那確實^_^
如上所述,你能想到的,早就有人去做啦,有人就去微軟的VC++版塊提意見,問為什么不出個
NativeWPF,即使不用C++,也很好呀。那我們就真的不用蛋疼客戶端啦,屌爆了!!! 不過不要高興,也不要期待微軟會這么干。 VC++官方團隊早就否定了這個意見,雖然沒有說是公司的戰略問題,但其實真的是微軟的戰略問題。C++好歹是別人的孩子,誰會丟下自己的親兒子呢~ 從C#的功能來看,可以發現微軟早十年就開始布局各大終端了,微軟的目標就是一統天下,你干什么都用.NET就行啦。並且目前仍在繼續,很多先進的NB功能都是只在C#里,C++只有仰望的份。 而WP8不支持C++開發,也讓很多人轉向了C#,總之,C++開發者越來越少,C#越來越多,那么微軟一統天下的目標就更近啦。 可惜近幾年被linux搶盡了風頭,android已經嚴重威脅了微軟,移動端的崛起已經讓微軟高度焦慮了。不說了,再說Alberl就有點擔心客戶端的命運了o(╯□╰)o 在其位謀其政,即使客戶端未來可能會消亡,Alberl還是那句話,移動端還是需要一個漫長的發展,十年內還是不能完全代替客戶端的,啥時不用PC敲代碼了,才是終結的時候。
最重要的是,你十年的時間里只學習客戶端? Alberl可沒這個打算,Alberl非常想學習各種知識,並且移動端的開發已經被安排在幾年后的日程里了,所以Alberl從不擔心MFC什么時候被淘汰,也不擔心C++什么時候被淘汰
。
扯到哪里去了?哎,微軟不願意做NativeWPF,但C++的界面好歹也是要做的吧,方案總是要有的吧。那確實,很多大牛已經做了,還是那句話,必須有大牛的無私奉獻,否則一切都是扯淡。這個將在后面的教程介紹~
國內用WPF最著名的就是
QQ概念版了,並且效果非常炫,但QQ概念版早就停止了開發,也許並不僅僅是因為界面,但可以知道的是:如果從零開始用.NET開發出一個QQ,無論是界面方面,還是邏輯方面,都要花費巨大的代價!
3、
用Web界面來做客戶端界面,
既然NativeWPF也沒有非常權威的框架,那我們再現實一點吧,用Web做界面,這個可是有很多著名框架的喲。
雖然前面兩個方案做界面都是很nice的事情,但是沒有知名的框架,對於我等菜鳥,目前是不可能去開發一個框架了,
所以我們再退一步吧,雖然HTML的界面效果有很多限制,但是已經能滿足絕大部分客戶端需求了,並且其方便程度簡直令小伙伴們驚呆了。
但是總有人站出來說:
又是幾十M的庫
。好吧,Alberl覺得如果不大於40M,應該不用太在意吧,如果小於20M,那真的可以忽略啦。
不過Web框架除了庫的大小,真的有致命的缺點:
1、界面效果有限制
,雖然HTML5可以解決這個問題,但是木有知名的框架。所以如果對界面要求不是特別高,只是想比普通客戶端好看一點,用Web還是不錯的。
2、跟JS交互搞死人,這個Alberl沒有去做過,但是聽朋友以及網上的大牛說,絕對可以搞死人。 不過有現成的框架在,這個也不用太擔心啦。 但是如果沒有驗證好就貿然去用,后面如果實現不了某些功能,那就悲劇了。 所以推薦先驗證一下某些重點功能能否實現,再做選擇。
3、速度很慢。 這個倒可以忽略了,因為現有框架已經解決了這個問題。
其中WebQQ也可以說是Web界面的頂峰了,上面有一整套QQ的產品,比如
QQ客戶端、
QQ音樂、QQ飛車等一系列產品,整個WebQQ簡直就是一個OS。但是光看WebQQ的桌面背景還好,如果一打開
QQ客戶端,
或者
QQ音樂、QQ飛車,那肯定會讓你失望的。其實失望的不是界面效果,而是比較,因為界面效果確實很炫,比起很多客戶端都好,但如果和PC上的QQ音樂、QQ飛車比起來,那真是失望了。所以Web界面的效果真的不是那么NB。
好啦,三種做客戶端的界面方法都介紹啦,第一種方法最好,但沒有知名的框架;第二種其次,並且有一些框架,但離知名才差得遠; 第3種最差,但已經有很多知名的開源庫啦。后面的教程會一一介紹。雖然這三種方法看起來都比上一個教程中的7個框架方便,但實際上還有很多需要完善的地方。
不得不說的是,其中
WebQQ可以說是Web界面的頂峰,而
QQ概念版可以說是.NET的頂峰,而
QQ正式版是VC++的頂峰。所以QQ已經花了巨大財力、人力、時間去研究了幾乎所有方式的界面,重要的是都付諸行動,並且達到了頂峰,
TX真的很強大!
所以Alberl在這里做一個總結:
1、你能想到的,別人已經做了;
你能做的,別人已經做到頂峰了;
你醒悟時,別人早就成功了。
2、沒有大牛無私奉獻,任何方式都是扯淡。
3、如果不是專業人士,就不要重復造輪子了,看看巨頭們都干了啥!
而Alberl不是大牛,所以無法去做一套框架;也不是專業人士,所以無法去利用現有成果重復造輪子;Alberl只是個小小菜鳥,什么好用就用什么,就算沒有滿意的,也只能選一個不滿意的框架啦。下一個教程將介紹Alberl怎么在不滿意的框架中選一個滿意的~O(∩_∩)O~