Windows 10 通用應用的前景如何?
Win10 Mobile 想借桌面的霸主地位,利用通用架構改善生態質量,大家感覺前途怎麼樣?
本來我不想在zhihu說什麼話的,就是圍觀各路大神裝逼就好了,但是作為一個對Win32有著深厚感情的程序員,我必需出來反擊一下@曹一聰。
首先表明一下立場,我並不反對UWP,也不會說UWP現在、未來如何,我只是想說一下,Win32是什麼,Win32和UWPAppx是什麼關係,也請了解後的人,不要對Win32、桌面exe抱有那麼大的偏見,因為這些是伴隨你我青春和成長的東西,雖然以後它可能無法伴隨很多年輕人的青春了。我文章有點長,因為這也是我的一些回憶。Win32是怎麼來的呢,雖然NT之前就已經有Win32的概念(那叫做Win16,但是API今天依然有,比如經典的LocalAlloc和GlobalAlloc的區別,搜一下就知道了),但是Win32的分層真正還是從Cutler做的NT開始的。
我們拋開啰嗦的內核層不談,因為內核層有不確定性。
應用層所有Windows程序都會經過Win32COM API進入到NTAPI層,然後由NTAPI層通過sysenter方式將調用分發到內核。
NTAPI層在桌面Windows有兩套,一套是由ntdll做thunk的,分發到ntoskrnl.exe,我們叫它SSDT表;另一套是NT的User界面子系統,由user32或者gdi32做thunk,這套系統在NT4以前是使用應用層的csrss運行的,當然現在csrss也還是承擔著一部分的繪圖工作,比如命令行窗口,現在則把user32的Window函數,消息循環邏輯、部分gdi的繪圖邏輯,都分發到了win32k.sys,你可以叫做影子SSDT表,為什麼叫影子,因為當年這個表微軟不導出,但是需要做一些窗口的保護驅動,需要這個表,然後大家都是搜內存搜出來的,所以就叫做影子。在Windows Phone 8上或者今天的Windows 10 Mobile上(基於NT內核),微軟就把win32k.sys刪空了,自然user32、gdi32也不存在了,全部使用DX繪圖,也就是把桌面的窗口、消息循環、gdi刪掉了,只留下了DX的驅動,然後使用DX來繪製UI,這種繪製UI的方法,用桌面程序員的話叫做DirectUI,最早起源與微軟控制面板的窗口類名,但是桌面程序員是不可能拿DX繪圖桌面exe的UI的,因為要考慮大量XP用戶,大量沒裝顯卡驅動的用戶。
你今天所使用的大部分桌面大型UI應用,比如QQ、迅雷、酷狗、360、金山,在那個Chrome做客戶端UI還沒有興起的年代,他們的DirectUI大部分都是自己寫的一套庫,騰訊叫做GF,迅雷叫做Blot,新浪微薄的exe桌面客戶端就是使用迅雷的blot。(但是我印象沒記錯的話,WP8時代的Office軟體是WP團隊自己搞的,記得因為是從桌面移植了一些模塊,所以微軟的團隊硬是用DX封裝了一個GDIGDI+的兼容層在Office裡面,導出了兼容桌面GDIGDI+的函數。)360安全衛士在早期Hook了一個叫做KiFastSystemCall的系統調用,這是一個未導出的函數,隱藏在sysenter切內核的函數代碼裡面,每個版本的系統的offset和patch-code都不同。Hook這個方法後,360可以抓到所有的系統調用,不管你應用層做什麼事情,你移動一下滑鼠1px也好,都會先經過360的模塊。現在360應該做得更狠了,但是我幾年不研究windows內核了,也不太清楚了。(後來金山也Hook了這個,但是金山姿勢有問題,還有漏洞,被MJ0011在百度博客噴)
騰訊的TP直接接管了系統的調試中斷,所以你會發現開LOL了VS就不能調試了,因為騰訊直接把本機調試禁止了,這個辦法也是判斷系統版本做特徵碼的,所以系統一更新,TP跟不上,遊戲就跑不起來了。(騰訊的TP我記得有不少開發者都是看雪論壇的老人了)QQ桌面exe版本為了防止那種注入式外掛、聊天記錄監視器,現在也加了個QQProtect.sys,Hook了SSDT裡面的一些進程方法,防止你打開它進程,但是只能防笨蛋而已。好了,我們說完應用層軟體的故事,我們再來說下Windows Runtime和appx。
WinRT API,其實是一套高度抽象介面化的COM API集,它跟傳統的Win32 COM並無兩樣,只是把GUID換成了HSTRING,根對象IUnknown又多了一個IInspectable,視覺上更友好了一點。
WinRT API也不是什麼底層的API,是一個基於Win32之上的高層API,也不是什麼新技術,它真正創新的部分就是XAML和沙箱應用程序模型。1、它的Async、ThreadPool邏輯基於Win32NTAPI線程池,這套線程池在UWP也可以使用,起源於Vista系統。2、它的大部分API都是把老舊的Win32 API進行二次封裝,暴露為在ThreadPool中運行的所謂Async方法,比如HttpClient封裝WININET,StreamSocket封裝WS2_32,Devices使用RPC方式封裝SETUPAPI,後台下載使用RPC方式封裝BITS,USB封裝WinUsb,Sensors封裝Win7那套COM的感測器API,HumanInterfaceDevice封裝HID.dll和一些RPC調用,證書封裝老的CERT系列API,Windows.Media封裝MediaFoundation等。大部分Win32 API在Vista、Win7甚至XP就有了,比如uwp現在常用的HttpClient的內核WININET,Win2000時代(其實更早)的產物。3、winmd就是COM的typelib的C#版本,因為typelib當年做出來是給VC和VB還有ASP中的COM自動化進行交互的,20世紀後.NET戰略起步,一開始微軟團隊割裂嚴重,typelib這種老技術不適合.NET的優雅,.NET團隊要實現C#的優美又要兼顧Windows的基石COM,所以他們只能把CLR運行時做成COM的來兼容一些老東西比如typelib,是的你沒聽錯,CLR在Windows上就是基於COM的,關鍵字叫做CLRCreateInstance。這種COM和.NET割裂的情況一直持續到WPF,微軟發現這樣不行,他們C++和Windows團隊要繼續開發COM,但是.NET又深受其害,以至於出現很多COM的PInvoke封裝品比如SharpDX這種東西,但是WinRT API又不能離開COM,怎麼辦,嘿嘿,所以在WinRT搞了個winmd,然後再搞一個不倫不類的語言C++CX,表面上看CX貌似沒COM,其實都是在生成一大堆COM,詳細可以去看CX項目主管寫的blog文章。4、WinRT API為了許可權和安全,把大部分調用,比如文件訪問,通過RPC(遠程過程調用),RPC在本機上實現為ALPC,ALPC把調用分發到一個高許可權的進程,高許可權的進程使用RmAccessCheck去檢查客戶端的Caps,判斷這個客戶端是否有許可權訪問,有的話高許可權的進程去打開文件,然後把句柄再複製回去客戶端進程,ALPC調用返回。正因為這繁瑣的調用機制,所以在系統繁忙和Metro App同時運行過多的時候,會使Metro app的服務端(svchost.exe)負擔過重,微軟為了解決這個問題,就另做了一些單獨的服務端,比如什麼TimeBroker啊,SystemEventBroker什麼的鬼之類的***Broker,打開文件時候的OpenFilePicker什麼的,讓他們單獨跑一些負擔過重的任務。然後也整因為這種跨進程在應用層到處跑RPC的方式,到處都是安全lock和COM的內存列集和散集,使得某些WinRT API訪問速度過慢,比如文件系統API,所以他們可能超過50ms,特別是在多個APP同時運行的情況下,所以微軟把他做成了非同步的。在Win32桌面exe中,許可權在啟動的時候就已經在Token中寫穩了,打開設備訪問文件都是直接的,成功失敗都是在內核決定的一瞬間的事情,所以效率很高。5、XAML實現在應用層,使用DX渲染;沙箱應用程序模型實現在內核層和Win32層,大部分是Win32層的API在進行控制。6、appx就是個壓縮包,安裝就是解壓,讀下裡面的xml文件,把相關的許可權信息寫入註冊表,APP激活的時候,LowBoxToken可以根據註冊表裡面的信息來創建。
也就是WinRT API本質是基於Win32COM下的一套高層API,有WinRT就有Win32COM,這是不可能分割開來的,就像Win2D基於D2D,XAML基於DX一樣的道理。
關鍵是微軟出於腦熱,把一些Win32 API刻意禁止了,你可以hack來使用,但是用了可能上不去商店,比如HttpClient基於的WININET,你可以使用HttpClient,但是你不能使用WININET,微軟的意思是你應該使用新的API,但是他自己就使用老的API,比如Edge、小娜、Win10的開始菜單都是C++和Win32、DX開發的,只是用XAML畫了個UI。很多Win10的新的系統庫,使用的COM庫還是ATL,而不是WRL,微軟內部使用老的庫很多,當然也是為了兼容桌面。在Win10的C:WindowsSystemApps下面,唯一一個真正的C#的UWP程序,就是那個Windows Feedback。以後的趨勢,假設UWP確實起來了,桌面輕量客戶端轉移UWP架構,那桌面客戶端開發更多會使用WinRT API,畢竟XAML能帶來觸控更佳的體驗,但是要更好的觸控體驗就需要犧牲功能,二者難同美,所以大型軟體還是只能靠Win32。
還有WinRT API是一套客戶端趨向的API,Win32是完善的企業、伺服器的API,所以方向也不同,微軟發那個不帶WinRT的企業LTSB版本就是如此,大部分企業不需要WinRT。二者在以後的UWP現代軟體開發中,是互補關係,假設你開發過程中只學習WinRT不學習Win32,遇到棘手的問題你恐怕只能求救到那時候熊貓般的還會Win32的開發者了。微軟現在公開給UWP的Win32 API也是補全WinRT的,比如內核線程池、內核對象、音頻視頻、遊戲圖形等,輕量級別的APP基本上不需要使用,但是不意味著可以沒有。假設沒有WP8.0時代開放的那點Win32 API,那也沒MoliPlayer。還有A和W的問題。。。
恩,如果沒系統性的開發過Win32,確實會糾結這個的,但是A和W是必需存在的,即便全UNICODE的今天,即便10年後Windows還活的話,A依然有,信不信我就立貼這裡了。(8.1時代微軟還不開放A的API,UWP就開放了。然後再反駁一下那句話:Win32/COM那套API,是註定要被歷史淘汰的。Edge的查克拉引擎,是一套C風格導出的Win32 API,裡面封裝了COM API。真要淘汰Win32/COM,先把微軟滅了吧。利益相關 微軟UWP開發顧問。
應用的複雜度是和開發商的投入成正比的,所以吐槽應用簡單的我只能攤手。我說幾個其他方案在Windows 上無法解決/很難解決的問題 這些UWP平台做到了。這些優點如何轉化為用戶可以感受到的價值,還是這句話 「應用的複雜度是和開發商的投入成正比的」 當然也「和開發人員和產品經理的愚蠢程度成反比」。我們一起努力吧。
1 省電。
UWP 開始引入了.net native,,沒有Jit了編譯在雲上做了, 這是以前.net開發的程序無法企及的優勢。可是大家現在沒有對比,要麼是app沒出uwp,要麼是app出了uwp ,但是會替換掉老app,同時開發者很可能改版,用戶會以為是改版造成效果,所以這一效果沒有什麼人會有明顯感覺。2 啟動速度快
同樣是.net Native 帶來的優勢 ,同樣代碼從8.1 遷移到uwp啟動快40%-60%是普遍現象3 VR/AR的支持,
D3d開發的App 原生支持切換左右眼渲染 你根本不需要N卡配貴死的眼鏡了,只要隨便有某家的眼鏡就可以搞,標準API,這邊說VR/AR是潮流 那邊又說UWP沒用是屬於因為缺少相關線索導致的精神分裂。4. 真跨平台 就知道說可能手機和pc一起跑, 先不說小IoT板子現在跑得多歡實,就說 Hololens 我作為中國做過實機開發培訓的二人之一可以告訴大家,UWP是在Hololens上直接跑成一個3d的窗口,直接拉窗體釘在牆上,是窗,是真窗,是真視窗,
統一操作方式 統一響應式ui直接看你心情來調整窗戶就好了。5 對桌面來說 將來UWP並不一定意味著可以到處都跑,而可能只是一種升級的包發布方式,這裡就要說Project C了,目前雖然還沒有Release,但是目前我知道的信息來看不會砍哦,他可以把一個傳統Win32程序打包成一個UWP.運行起來還是你的win32 程序,但是它活在沙箱里,不能改你的主機總註冊表、文件系統,帶來的效果就是卸載乾淨,購買方便,全家桶滾蛋,如果你是個老外,你裝了UWP打包過的MHO,就不用火燒火燎的問這個可不可以刪除 直接卸載MHO就都沒了。ok這話跟OSX的用戶說不著,因為他們已經這樣了,我們只能說我們網速比蘋果快了。 所以說UWP並沒有說一定要跨平台,也沒有說一定要用XX來寫App.
------針對題目來回答-------
Windows 10 通用應用的前景如何?修改
Win10 Mobile 想借桌面的霸主地位,利用通用架構改善生態質量,大家感覺前途怎麼樣?
你問的Win10M手機 還是Win10M將來適配的所有設備 還是 UWP App?
如果你問UWP會不會有前途,我跟你說這是真正的欽點,Win10在 UWP根本就不可能沒前途 就算win10失敗了,也不會有人維護win7了,難道還能卸載掉設置、開始和通知中心嗎 難道win10+x 就會放棄UWP嗎? 2y2sp
如果你問UWP開發者有沒有前途,我覺得假如開發得爛, 幹什麼都沒有前途。
假如你開發得好,你就算開發的是天天過馬路,你都瓢滿缽滿。你問Win10M的前途,這要看下面別的部門怎麼搞 和我UWP關係可能相關,但是目前我們UWP只能提供更低廉的開發成本和更強大的未來科技API,並不是決定性的因素。核心問題是 API 好么,「傳統的」win32 C++ 有多少坑跳過的都知道(比如著名的 A 和 W、著名的 MAX_PATH。手動斜 @vczh); .NET (和 Java)冷啟動時間和部署至今無解(0.1s 出現窗口這是硬要求);結果現在寫 win32 開發最簡單的成 Electron 了……UWP 至少依 Office 里的人的說法是填坑的大好機會。PC 端的改革才是重中之重的好嗎?! @vczh 說他們正在全功能移植 Office,文檔顯示一個像素都不差的那種。你們為啥都盯著手機……交互改起來很容易(看向 android),但是 API 要重做就難了。
補充一個思路。
UWP 不只是為了在pc,平板和手機上。
微軟還考慮IOT設備,以及增強現實設備的。
目標是所有設備都用一套可以代碼有效重用的UWP。uwp的最大敵人不是別人,正是自己的win7。如果是在國內,還要加上xp。
怎麼回事?都在討論WinRT屏蔽某些Win32 API ,而且都自以為說的很有道理。WinRT是適應新一代OS概念的一套框架,新一代OS(就是以App作為基本執行任務的OS,代表就是IOS,Android和Windows 10中運行於WinRT層級之上的這部分組件)跟現在的windows和unix操作系統是完全不同的概念,是更加完全的封裝,最最明顯的特性就是進程(APP)絕對隔離和用戶介面層去文件系統化,這都是為了安全和降低使用門檻而為之的,如果把Win32那套api繼續拿過來,怎麼能做到這兩點??如果你的app能像win32中一樣訪問別的進程,那還是會出現一堆病毒惡意軟體,也還是會出現一堆全家桶衛士。而且如果繼續保持開放的文件系統,一方面app無法保證自身完整性以及數據安全,另一方面對一個剛接觸這個系統的人來說門檻會高一些。你們就不要試圖從技術角度來噴這個問題了。時代變了,思想在變,概念在變,系統也在變,ios目前在這方面做的是最好的,而你現在看到的winrt只是微軟迫不得已才跟傳統win32堆在一起的,你習慣了win32編程,所以你覺得不該隔離一些api,但是這是趨勢!在消費級市場,新的OS概念是絕對趨勢,win32早晚會退出消費級市場,但是它不會消失,因為在其他很多領域他還不可替代,比如工控,科研,教育等等。安卓我就不說了,渣架構,渣安全。兩年前我說過如果將來windows中內置一個安卓子系統,性能絕對要比純的基於linux內核的原生系統要好很多!前段時間win10預覽版中很多開發者確實已經證實了我的預言。底子在那裡,再加win的架構,包個子系統,再稍微優化,輕鬆超越安卓。
——————————————
天天吵著說COM要玩的那些人,根本就不知道什麼是COM,或者說水平也就是知道Windows系統下面有個叫COM的開發模型,這就是狹義的COM,微軟主導的COM是一種思想,這種思想的根基就是二進位級別無語言差異的代碼重用。如果沒有參與過大規模的項目開發,根本無法體會到這種思想的重要性。COM只是微軟提出的一種思想,然後順便在Windows上實現了一個版本。一丟丟連windows開發都沒做過的人就天天噴COM垃圾,你們也是真有ball。
還有說什麼做win32最簡單的是electron,你那做的是前端,跟win32沒關係,你能在那個框架裡面做的東西可以滿足99%的用戶需求,卻永遠補不齊那剩下的1%。
【6】:我只針對每個月都有人說一次的謠言——Win32/COM那套API,是註定要被歷史淘汰的——談幾句話
其實無論是.net也好,C++/CX也好,IE裡面js調用的那些東西也好,新的Win32 API也好,其實都是COM。你們都可以使用Native C++和COM的方式去調用他們所有的東西。只是微軟也知道這樣做很噁心,於是就給你們發明了幾個語言,讓你們覺得好像不是在用COM。誰知道你們卻跳出來說,COM藥丸。
我國程序員的素質啊輕量應用用UWP取代Win32是完全可行的,比如網易雲音樂
我不提供觀點。我有幾個要求。1.Win32裡面有些API挺有用的,但是在WinRT中被禁用,而且沒有代替品,就不能加API?2.鍵盤快捷鍵為什麼被淡化了?
我還是挺樂觀的。用了一個多月surface,基本上沒碰過iPad了,而且台式機也閑置了……作為一個筆記本(也就是surface接上鍵盤滑鼠),我更傾向用win32的程序和打開網站的方式來使用電腦。偶然有些會打開uwp,因為uwp應用乾淨漂亮,相比網頁來說還可以接收通知,功能也更強。
如果我切換到平板模式,我就希望所以程序都是uwp版本的,win32對觸摸支持真的很差,特別是在surface這種高解析度屏幕上。大屏幕的觸摸設備真的用起來很舒服,我相信iPad Pro會更好用,因為有更完善的應用生態,但我想我是不會買iPad Pro的(還是窮)。iPad可以做很多事情,但是碰到iPad不支持的時候,surface至少可以找到相應的win32程序。
從這個角度來說,二合一設備還是有很多優勢的,也是PC的發展方向。隨著越來越多的設備支持平板模式,也會有更多的高質量uwp出來。舉個栗子,剛剛發布的網易雲音樂beta,搜狐視頻,優酷視頻beta。個人觀點:不靠譜
UWP 這個概念是不錯,像 Office 那種手機上用一套 Layout,大屏上用另一套 Layout 的響應式也很誘人,但問題是 —— 真的所有的軟體都適合做成通用應用嗎? 還有 真的所有應用都需要有 PC 版本嗎?
真的所有的軟體都適合做成通用應用嗎?
傳統 PC 的應用程序操作方式以滑鼠(單擊、雙擊、滑動)等精準指針設備和鍵盤進行絕大部分的用戶輸入,這麼多年用戶也習慣了這種模式。常用功能使用快捷鍵,非常用功能用滑鼠到菜單里尋找,工作效率極高。而觸屏設備上的應用,大多以觸摸(點按、划動)為核心交互方式,而且輸入設備大多是不精準的手指,不可避免的導致 UI 元素麵積要放大,操作邏輯需要重新設計。並不能真正做到通用,強行捏到一起做成 UWP 的結果就是每個平台都存在沒有用的垃圾代碼,給一個平台加新功能就算令一個平台功能沒有變化也要跟著一起更新 —— 蠢不蠢?
真的所有應用都需要有 PC 版本嗎?
很多手機端應用的主要功能,我們在 PC 上都只要通過一個瀏覽器就能滿足(電商,支付,各網站客戶端……)又有些手機端應用的核心功能依賴於各類 PC 上不存在的感測器(重力感應、陀螺儀等),根本無法在 PC 上使用,也沒有在 PC 上使用的意義 —— 你是會抱著 23 英寸顯示器玩重力感應遊戲,還是會把你的筆記本用來當水平儀調整相框?
PC 端應用程序和手機端應用的設計需求在根本上就是不同的
PC 端應用追求的是工作效率,追求的是生產力;而手機端應用根本上是追求易用性,簡化操作邏輯來提高用戶體驗。PC 是生產力工具,我需要它擁有強大的性能,穩定的工作模式。而智能手機剛好相反,追求的是時效性 —— 在路上我也想要隨時收到推送。強行把這兩者捏到一起就能拯救 Windows Phone(現已更名為 Windows 10 Mobile)的生態?不管你信不信,我反正是不信。計算機學生,見解可能不到位,來說一說自己的理解吧。
=========================================不考慮通用,僅在PC上使用,UWP也有很大的優勢。比起桌面應用個人更喜歡網易雲音樂的UWP版。
很多人可能都沒有意識到Edge瀏覽器其實是UWP應用。不談複雜的大軟體,不談大型遊戲,比起Win32桌面應用,UWP的輕量、快速、沙盒機制、無流氓、統一等等這些優點對於普通用戶和普通軟體來說還是非常有優勢的。
我絕對不願意在電腦上裝一個阿里旺旺,那貨流氓行為太多了。YY也只敢裝第三方修改版。還有各路軟體都更傾向去裝到虛擬機里去。但是UWP就比較放心了,雖然卸載以後可能還是會有一點殘留。而且對我這種非常喜歡UWP的界面風格的人來說,把一個小功能的軟體寫成UWP不僅簡便而且界面也很好看,同樣的時間寫Win32桌面應用的話界面會非常粗糙Orz
至於生產力方面可能是UWP的短板,目前還沒有看到好用的UWP生產力工具。UWP的發力點應該在日常軟體,如音樂視頻軟體。
期待UWP的爆發。參見Edge目前的佔有率吧。
其實問題在於Win32應用的佔有率和作為應用穩定性。然後因為種種原因Win32至少在很長一段時間內並不會消失,甚至依然作為主力。
不要談其它UWP質量,因為整個開發環境和底層都還在不斷地調整,目前連Edge這種官方為了推廣使出全身解數甚至雪藏IE而推出的核心UWP產品,拋開logo逼死強迫症,的確很輕快,有Cortana和OneNote特性加持,依然偶爾會假死或者崩掉,而這種偶爾是捉摸不透的,移動端的版本更加糟糕透頂,地址欄輸入時建議偶爾掉幀卡在一半,下載前甚至沒有確認選項,偽裝UA的設計時常默默地下來一堆apk。
對於大多數人來說,穩定比新奇的體驗和功能重要,而且目前來說win32能做到的已經非常優秀。
微軟的意圖非常明顯:
提高Windows 10佔有率
完善UWP的運行環境 引導Win32遷移到UWP提高移動端應用生態PC移動端一同推到UWP發展至主流微軟已經玩了三次架構調整,如果拋開Win32談未來,那就是Windows RT的安樂死,微軟也深知這個過渡期非常的長,這次UWP架構是讓PC也背鍋了,UWP已經滲入了PC端的各個角落,至少PC端的UWP估計不會輕易狗帶了。
微軟砸錢砸把XBOX砸活,把Bing砸活,UWP對於微軟的意義在於移動端有沒有自己的領地而留下的爛尾,所以也還在砸錢。
但是微軟已經轉型成為了「移動優先,雲優先」的服務型策略,如果自家Windows 10 Mobile宣告完結,UWP也就沒有什麼存在的必要了,與設計的初衷背道而馳,拋開移動端談UWP就是耍流氓,然而微軟的服務早就進駐了其它平台,這也是另一種存活方式,畢竟止損並不是不可以。
Zune和Metro是純粹的開始,UWP和Modern 2.0是不得已的選擇,但面目全非妥協中也有著許多先進的理念和想法,可以完全看作是微軟在移動端最後一次掙扎。希望它能繼續發展下去,給世界帶來不一樣的東西。下面是個人的見解,莫噴! ----------- WP生態一直因為應用數量和質量為大家所詬病,進而陷入惡性循環,使得WP系統遲遲得不到發展。於是微軟在發布WIN10後祭出「殺器」:通用平台!希冀通過WIN10 PC的裝機量帶動整個WIN10生態的發展,當然也包括WM10,這點乍一看真是振奮,畢竟WIN10早晚會在PC市場成為霸主地位,到時候開發商面臨的將是全球佔據90%以上的用戶,應用數量當然會得到解決。然而我們仔細的推敲一下,PC平台的發展一定會激發眾多的以開發移動產品客戶端的開發商開發WIN10通用應用嗎?如果你還不太明白我的意思,那我來問一下:在WIN10沒來之前,WIN PC平台已經發展幾十年了,其用戶量的龐大為什麼沒有激發開發商開發出微博,支付寶,淘寶,京東這些在移動端必備的客戶端呢?這裡我們就得來分析分析PC和Mobile的「功能屬性」和「操作體驗」問題。 第一,PC以工作和遊戲作為主力功能的平台本身就無法和移動端的應用需求「通用」。也就是說,在移動端需要的軟體在PC端並沒有太大的需求性,反而90%以上的軟體都以「網頁」作為實現這一功能的載體。我們平常購物的淘寶,京東等;瀏覽的百度,貓撲等論壇;獲取資訊的網易,鳳凰等門戶;甚至有時候看視頻的愛奇藝,搜狐等視頻客戶端都統統由「瀏覽器」作為載體。而這些軟體可以說在移動端都是很受歡迎的產品。而另一方面,號稱擁有上億軟體的WINPC系統其實軟體多以遊戲和工作相關,並不能嫁接到WINMobile平台。WIN發展了這麼多年,其以大眾為受眾對象的客戶端軟體也就瀏覽器和視頻軟體。瀏覽器還好,就是視頻軟體,廣大用戶有時候也並不買賬。 第二,PC的滑鼠操作和移動端的觸摸操作體驗無法很好的「通用」。雖說WIN10也是適用平板的操作系統,然而就目前看來,以後WIN10的裝機量幾乎絕大部分將有桌面撐起。最近,一有通用應用發布,我都是第一時間下載來用,然而除了第一次下載體驗過後,以後便很少使用了,除了上述所說的「網頁取代」之外,更多的是,即使我需要這項「服務」,我也優先選擇網頁端的。因為PC以大屏為優點,而眾多的軟體在設計之初,優先考慮的還是移動端。這樣雖然微軟提出了一項所謂的自適應技術,其效果還是沒有在網頁端直接瀏覽的效果好。比如最近發布的淘寶,以及包括「智機網」,「IT之家」這些我在手機端必備的軟體,轉移到電腦上後,還是更習慣網頁直接瀏覽!或者當我需要使用某項功能我更多的還是轉移到手機端去看,比如刷微博,逛貼吧等等,也就是說這些軟體現今在手機端之所以有需求是因為這類的軟體適合移動便捷類平台使用。 除了上述敘述的原因,PC平台的傳統WIN32應用,也是阻礙通用應用的一大攔路虎。比如PC平台裝機量最大「瀏覽器」應用,早已經被技術成熟的exe應用佔領,開發商在當前的狀況下沒必要開發出通用應用。再看幾乎必備的殺毒管理軟體,等待通用應用不知道會等到猴年馬月。因為這些產品深耕exe多年,真的沒有必要轉移到appx應用,一來用戶不需要,二來費時費力費錢,三來通用平台功能並不完善。 綜上所述,「體驗不佳」,「用戶需求不大」,「轉移平台費時費力」成為通用應用在PC端發展的阻礙性因素。個人感覺,唯一能帶動發展的應用類別也就「視頻音樂類」。希望通過PC平台把我們近些年來在手機端「喜聞樂見」的應用擴大到WINMoblie平台可謂任重而道遠,因為PC平台能否把這些適用於移動端的軟體----「UWP for PC」發展起來都是大問題。所以,解決該問題的突破點也許並不是PC的裝機量,而是平板的裝機量。微軟及其OEM廠商應該大力發展混合設備的銷量,不能讓WIN10淪為只用滑鼠操作的WIN7加強版系統,那樣即使WIN10份額再大,它帶動的也只有適用於WIN10 PC的應用的開發,也就是WIN32應用,而不會是通用應用。
現在的主要問題是,很多UWP軟體對滑鼠的支持不大好!而且幾乎不支持快捷鍵操作!
在用大屏幕的時候使用觸摸屏我覺得還是挺不靠譜的。太累了!無論說好說話都是要去靠實際去檢驗的,只要微軟能玩好不作死,那麼我相信在兩到三年之內他會讓我們已經習慣UWP應用的,然後那是WIN32對我們來說就會像是CDM一樣稀有了。哇靠,你這居然不是UWP應用啊,好厲害的感覺。只不是史(win10)前遺物嗎?還能用?
我比較喜歡用筆記本電腦,裝上了WIN10系統就可以使用IT之家,NGA等UWP應用,這樣與手機的體驗是一致的,真的很方便!隨著人們對UWP應用的
需求越來越高,說不定WIN10系統就會成功,WIN10手機和平板的生態也會好起來。至少在我看來,筆記本電腦是離不開UWP的。我已經把手機上的IT
之家卸載了,但我仍然在WIN10電腦上使用著IT之家,納德拉說得對,win10運行在多種設備上,無論手機,平板,電腦都需要UWP,所以開發UWP
會獲得應有的報酬,這一定會解決應用生態的問題。
在手機,電腦,平板上提供一致的體驗,win10已經做到了,我覺得最大的意義
倒不是你可以隨時轉到另一種設備上繼續,而是我們可以選擇自己最喜歡的設備和操作方式,卻永遠不必擔心缺少應用,因為UWP適用於各種設備,體驗都是很好
的。我喜歡筆記本電腦,卻可以在筆記本上使用UWP,如果你願意的話,它可以與手機,平板同步,絲毫不落後於時代,這是win7做不到的,也是微軟給我的
最大驚喜!我可以在自己喜歡的設備上得到一致的,完美的體驗!
什麼時候電腦裝win10以下系統全部爆炸,所有古老軟體都有人開發新版本,UWP什麼通用應用才能有大發展。目前UWP崩潰就像玩兒一樣,沒事兒操作中心或者開始菜單就抽,而且應用不適合複雜的交互,或者說目前就沒法用複雜的交互,現在的什麼網易雲音樂,微博什麼界面的限制太大,死板不夠靈活。只能說這是微軟試水之作,是否嘗試開發這個看你心情。不過,期待進一步優化,畢竟都希望Windows越來越好用。
技術層面看不懂,聊聊淺顯的感受。
通用應用對於使用者最大的趨勢是全平台的UI交互大統一,而凸顯三個比較突出的矛盾
a.統一的交互邏輯必然帶來相似交互方式,與不同平台的操作方式和習慣就會產生非常多的矛盾。例如:點擊、觸點、拖動、划動、書寫
b.全平台的大統一將要面對更多數量級的硬體設備(雖然相對PC會少很多),適配、操作習慣的差異勢必會讓大統一用起來蠢萌蠢萌。例如:各式各樣的解析度、DPI、顯示器尺寸、擴展的hello、指紋模塊、成像模塊等等
c.通用應用在控制軟體源頭方面有著巨大的優勢,再結合賬號系統,用戶系統中應用管理的需求將會大大提升。完善的賬號系統、接地氣的綁定機制、易用應用管理邏輯缺一不可。
=======================================更新,工地猴終於放年假了,去電子城體驗了下Windows 10面臨的問題還太多,通用應用做的如何前面的坑得先填上。一句話:UWP會成為一些小型軟體的福音,但是大公司永遠不會待見UWP。
軟粉吹微軟時常犯的兩個毛病:1.以為所有人都歡天喜地地跟隨微軟的方針。2.拿ppt上的豐滿未來去和骨感的現實做對比。第一點具體來說:你是國內的xx衛士、xx管家的開發商,你會希望失去流氓權利的UWP應用取代傳統軟體嗎?你是騰訊、搜狗,你會希望用戶可以隨意禁止各種彈窗嗎?你是谷歌、蘋果,你會希望有朝一日開發的windows軟體必須遵循微軟的規範嗎?你是dropbox、steam的開發者,你會希望onedrive、xbox取代你嗎?
開發UWP軟體、支持UWP,就意味著把軟體的生死大權交到微軟手裡。今天windows壟斷了pc,微軟就敢強行升級windows10,萬一明天UWP壟斷了windows軟體,說不定微軟會做出什麼來。
關於第二點,可以參考微軟的手機。WP7時代,軟粉就信誓旦旦地說:「買WP沒錯,劃屏流暢安全性高,等app數量上來了肯定秒殺安卓蘋果。」幾年過去了,安卓的流暢度安全性越來越好,蘋果雖然被指缺乏創新但生態圈更加成熟,windows10 mobile卻還是連個支付寶都用不了的狀態。
餅誰都會畫,用戶能不能吃到才是關鍵。樓上很多回答所描述的UWP優點,是建立在UWP確實能取代傳統win32/COM軟體的地位的前提下的,問題是,真能取代嗎?推薦閱讀:
※如何評價嗶哩嗶哩UWP預覽版?
※為什麼windows phone火不起來?
※如何看待微軟的Windows Core OS計劃(跨平台模塊化Win10)?
※如何評價UWP版微博項目被砍?
※如何看待微軟 Build 2017 宣布 Ubuntu 登陸 Windows 應用商店?
TAG:WindowsPhone | Windows10 | 通用Windows平台UWP |