自Windows 10面世,微軟就將通用Windows平臺(UWP)定位成未來所有Windows應用程序的平臺。UWP擴展了Windows 8以觸控為中心的設計,提供了一種通用應用程序包,可以部署到所有運行Windows 10的設備上:傳統桌面、平板電腦、Xbox One和HoloLens。那些希望用一種現代化的技術替換Windows Presentation Foundation(WPF)和WinForms應用程序的開發人員發現,UWP的觸控優先設計在某些方面存在不足。
近日,長期從事企業軟件開發的Dean Chalk寫了一篇關于現狀的信息評論,探討了他為什么認為微軟偏離了目標。文章標題為“微軟及其UWP企業幻想”,Chalk的核心觀點是,UWP不是為構建傳統業務線桌面應用程序而設計的,也就無法成功地扮演這個角色。
首先,Chalk指出,業務應用程序并不適應移動優先的理念。傳統寬屏顯示器、鼠標和鍵盤的生產力很難通過iPhone的屏幕鍵盤來實現。除了易用性之外,與必須支持觸控式人機界面的智能手機App相比,桌面應用程序可以提供更高的信息密度。
Chalk解釋說,觸控式應用程序面臨的其中一項挑戰是,它們恰恰不是桌面環境下符合人體工程學的人機界面。使用鍵盤和鼠標輸入要準確得多,也快得多,而且不那么耗費體力。根據曾經開發復雜財務應用程序的經驗,Chalk指出,屏幕的每個像素都很重要,因此,在他的開發中,為觸控友好的控件花費昂貴的不動產是種浪費,經常還是無效的。
通過幻燈片可以看出,Chalk認為,傳統WPF應用程序容易調試得多,因為它們使用MSTL和BAML,而且面向的是通用語言運行時(CLR)。與UWP方法相比,查找Bug及調試應用程序流程都要簡單得多。那些應用程序被編譯成機器代碼,并使其成為COM包的一部分,極大地增加了復雜度。在某些情況下,這讓調式變得幾近不可能。
讓Chalk的文章變得有趣的是它引發的評論。Tim Sneath最近剛剛從微軟項目經理的位置上離任,現在從事谷歌Flutter的研發。他認同Chalk的觀點,并指出,WPF基于Windows XP時代首次出現的DirectX 9構建。Sneath在評論中分析了他在微軟任職期間微軟使用的桌面應用程序方法。Sneath相信,微軟走入了一條死胡同,這最終讓他加入了谷歌Flutter App SDK的開發。對于Windows開發人員而言非常遺憾,Flutter面向iOS和Android應用,對于那些繼續開發桌面應用程序的開發人員助益甚微。
在Reddit上的討論中,人們的反應各有不同。在許多情況下,評論者并不同意Chalk的觀點。有人的說法和他相反,許多公司用戶確實想要移動應用,而其他人則覺得基于Web的技術就足夠。
查看英文原文:The Challenge of UWP Apps in the Enterprise