<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一個 iOS 開發(fā)者眼中的 WPF 技術(shù)

          共 2086字,需瀏覽 5分鐘

           ·

          2020-08-01 06:38

          知乎上18年的一個帖子,看看iOS開發(fā)者怎么評價WPF的,整體還比較中肯,部分觀點過于悲觀,但不礙于是個好帖子。

          事情還要從一年前說起,本來小生我也算是半個果粉,iOS 研發(fā)一直做的風生水起,對于知乎上所謂果粉和軟粉的撕逼,完全是一種“事不關(guān)己高高掛起”的心態(tài)。然而好景不長,剛進入公司兩個月不到,就因為業(yè)務(wù)調(diào)整,被調(diào)去做 PC 開發(fā),開始學習和使用 WPF 技術(shù)。到現(xiàn)在,我也勉強算是 iOS 和 WPF 雙修的人才了?,F(xiàn)在看到知乎上果粉和軟粉的時候,莫名地有一種“早已看透一切”的包容和親切。

          知乎的微軟話題和 WPF 有關(guān)話題,充斥了輪子哥以及類似輪子哥風格的,帶著微軟浪漫主義色彩的答案,不管中間說了些什么,結(jié)尾必定要有一個“(逃”。本來我對輪子哥這種技術(shù)前輩,是懷著尊重的態(tài)度的。直到我昨天刷到了這么一個問題:

          學完了c/c++的語法和簡單算法(圖論 搜索 dp 快排啥的),應(yīng)該深入學習算法,還是學習其他語言?帖子鏈接:https://www.zhihu.com/question/266079812

          輪子哥前排建議一個大一學習算法有點吃力的計算機專業(yè)學生,去學習 C++ 大規(guī)模軟件開發(fā)。從這個答案,我算是終于看出來,輪子哥答題就是在 xjb 答。我覺得我需要做點什么。我想用自己微弱的力量,給知乎上的微軟話題,帶來一點清流。于是就有了這篇文章。

          本文假設(shè)讀者對于“WPF 是什么”有一個基本的認識和理解,因此不再贅述有關(guān) WPF 的基本概念。

          WPF 的優(yōu)勢

          先說結(jié)論,WPF 毫無疑問是現(xiàn)在開發(fā)傳統(tǒng) Windows 應(yīng)用最先進的框架,目前看沒有之一。WPF 誕生的目的就是為了取代傳統(tǒng) Win32,MFC,以及 WinForm 等開發(fā)技術(shù)。WPF 的優(yōu)勢具體體現(xiàn)在下面幾點:

          1. 前沿的設(shè)計和強大的框架。作為一個比 iOS 和安卓早出生好多年的 UI 框架,其主體設(shè)計是適應(yīng) MVVM 的?,F(xiàn)在 iOS 和安卓看起來“先進”的 MVVM 設(shè)計,其實早就被 WPF 廣泛使用了?;?XAML 的界面解耦,內(nèi)置的數(shù)據(jù)綁定引擎等等設(shè)計,讓 WPF 成為了非常強大的 MVVM 框架。借助于框架的先進性,在傳統(tǒng) Windows 開發(fā)領(lǐng)域,其效率是秒殺其他技術(shù)的。
          2. 完善的工具支持。這一點對于 MS 家的大部分平臺都是適用的,裝了 VS 之后基本不需要其他工具。VS 本身就可以同時作為 XAML 設(shè)計器和代碼編輯器。配合 C# 作為開發(fā)語言,寫代碼的體驗是很順暢的。從 VS 2017 開始,甚至支持了運行中 XAML 的即時修改,所見即所得,達到了接近前端開發(fā)的體驗。進一步提升了開發(fā)效率。
          3. 較為理想的性能。作為跑在 .NET 上的技術(shù),WPF 實際的性能表現(xiàn)可以說是讓人滿意的。WPF 本身是使用 DirectX 渲染的,因此其圖形性能有一定的保證。在現(xiàn)在電腦配置普遍較高的時代,實際使用中,Win32/MFC 相對于 WPF 的性能優(yōu)勢并不明顯。

          WPF 的劣勢

          說完優(yōu)勢該說劣勢了,WPF 技術(shù)的劣勢也是十分突出的,具體有下面幾點:

          1. 較高的學習成本。相對于 iOS 和安卓,WPF 由于設(shè)計思想和框架的復(fù)雜性,其入門門檻相對要高很多。而且相對于現(xiàn)在勢頭正盛的 iOS 和安卓,WPF 的資料在網(wǎng)上要少太多了。對于新手而言,入門是個比較大的問題。
          2. 社區(qū)的缺失。這也是微軟桌面技術(shù)一直以來的問題。和 iOS,安卓,以及 Web 相比,WPF 幾乎沒有社區(qū)可言,開源項目寥寥可數(shù) 。優(yōu)秀的 WPF 控件庫和工具庫,都是商品產(chǎn)品,需要花錢買。對于習慣了 iOS 的開源氛圍的我來說,覺得很痛苦。
          3. 框架的限制難以適應(yīng)大量交互需求的現(xiàn)代軟件開發(fā)。WPF 本身框架的強大是毋庸置疑的,然而同時也給 WPF 帶來了非常大的限制。WPF 本身誕生的時代,是傳統(tǒng) Win32 的時代,所有的應(yīng)用都是按鈕菜單那種老式的交互設(shè)計。而現(xiàn)在的交互設(shè)計卻追求自定義 UI 和控件之間的各種聯(lián)動。在這樣的需求面前,WPF 明顯是力不從心的,有些東西的實現(xiàn)要繞過框架的限制,代碼就會變得丑陋同時難以維護。只能說 WPF 確實是年代太久,不適應(yīng)我們這個時代了。
          4. 內(nèi)存占用和性能要求較高。由于本身跑在 .NET 上,內(nèi)存可控性就相對差一些。同時 WPF 框架本身就要占用大量的內(nèi)存,在這個層面上,幾乎沒有優(yōu)化空間。舉個例子,一個全新的只有空白窗口,什么都沒有的 WPF 工程,在 Debug 模式下運行,就要占用 90M 左右的內(nèi)存。在配置較低的機器上,程序很容易因為內(nèi)存占用太高而崩潰。

          總結(jié)

          總體來看,WPF 技術(shù)有其先進的一面,也有其缺點。然而 PC 桌面開發(fā)的頹勢已經(jīng)形成,不可逆轉(zhuǎn)了。WPF 或許是生不逢時,從出生到現(xiàn)在,還沒有來得及經(jīng)歷巔峰,時代就把它拉倒了谷底。


          瀏覽 38
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲国产情侣小视频 | 婷婷激情丁香五月天 | 中国三级网站 | 美女自慰喷水网站 | 大香中文字幕在线观看 |