溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

WPF老矣,尚能飯否——且說說WPF今生未來(中):策略

發(fā)布時(shí)間:2020-06-23 16:56:38 來源:網(wǎng)絡(luò) 閱讀:904 作者:powertoolsteam 欄目:編程語言

本文接上文《WPF老矣,尚能飯否——且說說WPF今生未來(上):擔(dān)心》繼續(xù)。

“上篇”中部分精彩的點(diǎn)評(píng):

雖然WPF不再更新了,但是基于WPF的技術(shù)還是在發(fā)展著,就比如現(xiàn)在的WinRT,只不過API換了一套而已,xaml還是xaml,數(shù)據(jù)綁定還是數(shù)據(jù)綁定,依賴屬性還是依賴屬性,模板還是模板。其實(shí)學(xué)過WPF的轉(zhuǎn)WinRT還是比較爽的,Blend的操作也沒變,只不過現(xiàn)在WinRT的人才需求量的確有點(diǎn)坑。
最后感謝WPF給我們帶來MVVM這種開發(fā)方式、開發(fā)模型。   by @h82258652

雖然winfrom本身停止更新,但是工具卻在一直升級(jí)??!比如說VS設(shè)計(jì)器,C#語法,第三方控件和開源組件等等。    
另外,WinForm基于Win32 api的設(shè)計(jì)本身就很成熟,從內(nèi)容上來說基本上已經(jīng)包羅萬象,微軟不更新也不會(huì)有問題。                                                              by @winkingzhang

技術(shù)總是要更新?lián)Q代的,有些人說換個(gè)API來賺錢,倒也搞笑,映射出好多人換個(gè)API就不會(huì)開發(fā)了。我倒覺得,人家更新歸更新,我們開發(fā)者做的其實(shí)永遠(yuǎn)就一件事情,寫好我們的代碼,做好的產(chǎn)品。.NET的代碼永遠(yuǎn)也就那樣寫,對(duì)吧。                 by @筍干

微軟的新策略

在2014年二月,微軟任命了一個(gè)新的CEO,他就是薩提亞·納德拉,來自微軟云服務(wù)部門。  
他將接替上任史蒂芬·鮑爾默,就是那位不懂移動(dòng)市場(chǎng)的(首先是iPhone和Android),甚至可能是微軟和競(jìng)爭(zhēng)對(duì)手(蘋果和三星)市場(chǎng)之爭(zhēng)中敗北的原因之一。

WPF老矣,尚能飯否——且說說WPF今生未來(中):策略    
和他的前任相反的,薩提亞·內(nèi)德拉為微軟確定的全局目標(biāo)是“云優(yōu)先,移動(dòng)優(yōu)先”,因此要從跳出經(jīng)典的桌面市場(chǎng),這確實(shí)是一個(gè)合情合理的策略。但是準(zhǔn)確的說,WPF是一個(gè)從“老”模型上設(shè)計(jì)出來的:這是一個(gè)典型的富桌面應(yīng)用;與之相對(duì)的WinRT采用一個(gè)完全不同的設(shè)計(jì)模型,更加貼近移動(dòng)平臺(tái)需求。    
當(dāng)然了,桌面和單機(jī)市場(chǎng)并沒有死亡,但是顯然不再是獨(dú)挑大梁。

微軟商店

為了獲取部分應(yīng)用程序開發(fā)商的年收入,像蘋果和微軟這樣的眾多平臺(tái)供應(yīng)商都創(chuàng)建自己的“商店”,所有的發(fā)布和購買都在此。據(jù)我所知,很不幸,微軟商店的應(yīng)用程序必須是基于WinRT開發(fā)的,因此WPF開發(fā)的應(yīng)用是不能發(fā)布到這個(gè)商店里。  
注意到對(duì)于一些業(yè)務(wù)相關(guān)的應(yīng)用是內(nèi)部使用和部署的,或者大型的應(yīng)用程序開發(fā)商比如做ERP系統(tǒng)的,他們有自己的分銷渠道,因此這都不是問題;但是對(duì)于一個(gè)小型開發(fā)商來說,它就是問題了,因?yàn)槟阆M檬袌?chǎng)的透明性來保證在其他競(jìng)爭(zhēng)對(duì)手之前搶占到市場(chǎng)。    
越來越多的人在不知道從哪里獲得一個(gè)新的應(yīng)用的時(shí)候本能的選擇使用在線商店的搜索功能。如果你開發(fā)一個(gè)WPF應(yīng)用程序,你將很難發(fā)布產(chǎn)品,更不用提銷售就更難了,因此,用WinRT開發(fā)吧。

移動(dòng)性

如果你每天通過移動(dòng)設(shè)備上的瀏覽器或者本地應(yīng)用程序獲取數(shù)據(jù),那么你肯定懂得如今市場(chǎng)上的潮流趨勢(shì):你的應(yīng)用需要移動(dòng)版本!  
WPF壓根就不是一個(gè)為移動(dòng)開發(fā)的主角,甚至配角都算不上,前幾年,為Windows Phone定制的Silverlight一度亮相,作為當(dāng)時(shí)的Windows Phone 7的開發(fā)工具。但是一個(gè)平臺(tái)一套開發(fā)套件顯然不是好主意,盡管可以共享一些過程和標(biāo)記代碼。    
WinRT正是為此問題而誕生,因?yàn)樗且惶诪閃indows 8+全系列平臺(tái)設(shè)計(jì)的,從系統(tǒng)級(jí)別考慮一致性的,易于上手開發(fā)的通用工具集。其中有一些第三方控件支持WinRT,如:ComponentOne Studio for WinRT XAML。

WPF老矣,尚能飯否——且說說WPF今生未來(中):策略

維護(hù)成本

如果你這些年一直在微軟技術(shù)平臺(tái)工作,那么你肯定知道微軟花錢很謹(jǐn)慎,一個(gè)很好的原因是,首先,作為一個(gè)公司,得賺錢,還得比股東要求的更多,所以,能省則省吧;其次,很多看起來似乎很小的一個(gè)小功能實(shí)際上有很多的工作去做,Eric Lippert在他的博客里做了很生動(dòng)的闡述:How many Microsoft employees does it take to change a lightbulb?    
因此,當(dāng)社區(qū)提起要修復(fù)一個(gè)bug或者一個(gè)新功能的時(shí)候,僅當(dāng)它是類似下面兩條這樣的一個(gè)大問題才會(huì)被采納:    
- 重大問題,比如安全漏洞,即使很少人會(huì)碰到    
- 小變化但是無數(shù)人抱怨    
同時(shí)開發(fā)WPF和WinRT將會(huì)暗示同時(shí)處理兩套功能需求,同時(shí)修復(fù)兩份bug,顯然這不合理,尤其在微軟削減開支的時(shí)候。

可移植性

想想什么是能讓W(xué)PF“存活”下來的特質(zhì)呢,比如作為可移植的技術(shù)開發(fā)客戶端應(yīng)用,但非常不幸,它沒有。  
已經(jīng)有一個(gè)可移植版本的.NET(指學(xué)院派的,包含CLI):Mono,它可以在Windows下運(yùn)行,同時(shí)也能在Linux、Unix和Mac上運(yùn)行。[注:本文未提到微軟.NET開源、可移植的最新消息]    
另外,Mono不是一個(gè)玩玩而已的技術(shù),它實(shí)實(shí)在在的工作著,就我個(gè)人,我已經(jīng)在Ubuntu服務(wù)器上和Jenkins集成服務(wù)上構(gòu)建應(yīng)用。    
Mono支持大部分的.NET框架的大部分技術(shù),唯獨(dú)沒有支持WPF;如果我記得沒錯(cuò)的話,曾經(jīng)有一個(gè)項(xiàng)目叫“Olive”曾經(jīng)做過嘗試,但沒有真正的開始,因?yàn)楣ぷ髁刻罅?,特別是底層呈現(xiàn)層。    
Mono支持的唯一界面是WinForm,令人啼笑皆非的是,正因可移植性,WinForm才能比WPF活得更好。

Silverlight綜合征

當(dāng)我作為一個(gè)Silverlight開發(fā)人員的時(shí)候,我發(fā)現(xiàn)技術(shù)消亡的速度比我想象的要快得多。時(shí)光回到2008/2009年,富互聯(lián)網(wǎng)應(yīng)用(RIA)還是一個(gè)很響亮的噱頭,微軟為此發(fā)布了自家的框架,Silverlight,并在隨后的一系列微軟事件中公開亮相,希望各個(gè)業(yè)務(wù)主管在他們的IT體系中運(yùn)用。隨后的2010年,直到2011年第一季度,我們就在開發(fā)Silverlight應(yīng)用。  
但是隨后的某地舉行的一次技術(shù)會(huì)議上,微軟宣布停止推進(jìn)Silverlight,轉(zhuǎn)而開始推廣HTML5生態(tài)體系(包括CSS和JavaScript)。但是官方卻說Silverlight沒變化,對(duì)此我非常懷疑,也通告報(bào)道此事,而后我的團(tuán)隊(duì)決定停止Silverlight開發(fā),轉(zhuǎn)向集中精力投入“經(jīng)典”的WPF開發(fā),順帶還能獲得一些好處(比如,Silverlight不是“即插即用”的,而是首先需要管理員權(quán)限安裝Silverlight運(yùn)行環(huán)境。

WPF老矣,尚能飯否——且說說WPF今生未來(中):策略    
值得慶幸的是,大部分的XAML和C#代碼(大約85%)是和WPF共享的,因此沒有損失太多,不需要做太多的確認(rèn)我們就停下來了。    
最終這是一個(gè)正確的決定,因?yàn)榈?013年微軟官方宣布Silverlight終止,很多的IT相關(guān)人員非常吃驚,因?yàn)樗麄儧]有收到任何前兆。    
我想此類事情不會(huì)粗暴的再WPF身上發(fā)生,但是我認(rèn)為,在當(dāng)今的IT環(huán)境和上下文中,你肯定很失望,從此多疑,甚至完全不信任。

[未完待續(xù)]

 

鑒于在《WPF老矣,尚能飯否——且說說WPF今生未來(上):擔(dān)心 》網(wǎng)友們?cè)u(píng)論的特別聲明

葡萄城最近1月發(fā)布的Spread Studio 8和ComponentOne 2014V3、ActiveReports 9依然對(duì)WPF、WinRT、SilverLight提供產(chǎn)品升級(jí)和技術(shù)支持。

 

完整系列文章:

  • WPF老矣,尚能飯否——且說說WPF今生未來(上):擔(dān)心

  • WPF老矣,尚能飯否——且說說WPF今生未來(中):策略

  • WPF老矣,尚能飯否——且說說WPF今生未來(下):安心


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI