微軟把uwp定位成傳統業務線(lob)應用程式開發平台,以使用windows template studio實現快速應用程式開發為重點。但是,為了把lob開發人員吸引到uwp平台,他們在做的事情不止這些。
\\ 最初發布時,通用windows平台(uwp)只是被視為一種在windows商店中銷售應用程式的方法。其基本思想是你編寫一次應用程式,它就可以在windows和windows phone上執行。但是有嚴格的限制,你幾乎是必須通過windows商店。對業務線(lob)應用程式而言,這就不合適了,因為它們天生就不應該公開暴露。
\\ 借助uwp,lob開發人員要麼繼續使用遺留的winforms和wpf平台,通常是使用clickonce作為部署方法,要麼接受內部web站點額外的複雜度和開發成本。對於中大型企業,這個方向尤其流行,winforms/wpf更高的部署成本是乙個因素。
\\ 隨著去年「windows 10 fall creators update」的發布,uwp模型發生了變化,它使得直接通過**安裝uwp應用程式成為可能。雖然和clickone的體驗不完全一樣,但至少是個開始。同時,微軟有乙個團隊致力於使xaml/uwp更適用於lob應用程式。
\\\\
使用者控制項是任何ui框架的核心。強大的使用者控制項模型促成了visual basic在20世紀90年代的流行,並且仍然使桌面應用程式的開發速度高於基於html的解決方案。但是,uwp部署模型給它帶來了一些不必要的限制。
\\ 由於主要的使用者控制項(又名平台控制項)已經變成了os的一部分,所以,應用程式在採用新控制項時必須非常保守。有些公司的機器雖然執行著windows 10,但其版本經常比正式發布的版本落後兩個版本,這時候問題會尤為突出。
\\ 為了解決這個問題,平台控制項現在作為nuget包發布。這使得開發人員可以利用新控制項,而不必等待公司的其他部門都公升級到最新的windows版本。這些nuget包至少需要2023年8月發布的windows周年紀念版。
\\ 這些控制項填補了uwp生態系統中眾所周知的空白,如缺少tree-view、選單欄或顏色選擇板。
\\\\
借助.net framework和.net core,uwp現在支援.net standard 2.0。這使得開發人員可以把他們的業務邏輯和資料模型遷移到.net standard庫。那樣,他們就可以在傳統的桌面應用程式、**或uwp應用之間共享同樣的**。理論上講,這將簡化從winforms/wpf到uwp的遷移。
\\\\
微軟把uwp中的預設空間和大小描述為「慷慨提供了大量空白」。計畫在今年發布的windows版本將改變這種預設情況,通過自動減少控制項尺寸、控制項之間的填充空間、字型大小,釋放更多螢幕實際使用面積,一般來說,就是讓一切更緊湊。按照他們的估計,你可以把螢幕上的控制項數量增加約三分之一。
\\ 開發人員可以通過選擇簡潔模式進一步縮小控制項的尺寸。控制項之間的空間減少了大約40%,一次可以看到的資料增加了大約50%。這項特性主要是針對資料密集型的業務線應用程式。
\\\\
眾所周知,乙個令人愉快的顏色主題會增加使用者對工具的信任。但是,對於像uwp/xaml這樣複雜的樣式模式,通常甚至沒有時間應用最基本的顏色。基本上,問題在於,每種控制項型別的樣式都需要單獨更新,然後再測試整個主題。在構建業務線應用程式時,很少有足夠的時間這樣做。
\\ 有一款新工具,姑且稱之為「color demo」,就是要解決這個問題。使用簡單的顏色選擇器,就可以預覽主題,生成必要的資源字典,包含到應用程式中。
\\ 而且,它會提示你顏色選擇可能導致的問題,如沒有足夠的對比度使文字可讀。
\\ 這還不如全樣式的xaml應用程式豐富,但是,它可以為應用程式提供足夠的修飾,使它看上去有乙個專業的外觀。
\\\\
uwp還有另外乙個明顯的不足,就是缺少資料驗證支援。這個疏忽很奇怪,因為資料驗證從一開始就是.net ui框架的一部分。(我們在文章「c# api中的模型和它們的介面設計」中討論過其中部分介面)。
\\ 今年新增的功能是在基於屬性的驗證中使用inotifydataerrorinfo介面。當乙個模型暴露了這個介面,ui就能夠自動顯示正確的錯誤資訊。它顯示錯誤的具體方式取決於你在控制項中選擇了哪個模式。
\\ 實現inotifydataerrorinfo介面並不簡單,涉及許多把基於屬性的驗證附加到inotifydataerrorinfo介面的樣板**。因此,你也許會希望找乙個mvvm框架來幫你處理。[本文作者的tortuga anchor庫就是這樣乙個例子。]
\\\\
對於非uwp開發人員,沒有提供開箱即用的data grid看上去相當奇怪。
\\ 對於業務線開發人員,ui框架不提供data grid幾乎是不可想象的。甚至是早在上世紀90年代中期,這個控制項的乙個變體就已經成為無數業務應用程式的核心。許多在考慮uwp的開發人員驚訝地發現,微軟已經從wpf或silverlight移植了data grid。
\\ 這最終是通過windows community toolkit解決的。新的datagrid控制項所需要的xaml看上去和在wpf中非常像。
\\ 下週,我們將深入介紹windows community toolkit。
\\檢視英文原文:
微軟把UWP定位成業務線應用程式開發平台
微軟把uwp定位成傳統業務線 lob 應用程式開發平台,以使用windows template studio實現快速應用程式開發為重點。但是,為了把lob開發人員吸引到uwp平台,他們在做的事情不止這些。最初發布時,通用windows平台 uwp 只是被視為一種在windows商店中銷售應用程式的方...
微軟把UWP定位成業務線應用程式開發平台
微軟把uwp定位成傳統業務線 lob 應用程式開發平台,以使用windows template studio實現快速應用程式開發為重點。但是,為了把lob開發人員吸引到uwp平台,他們在做的事情不止這些。最初發布時,通用windows平台 uwp 只是被視為一種在windows商店中銷售應用程式的方...
微軟把UWP定位成業務線應用程式開發平台
微軟把uwp定位成傳統業務線 lob 應用程式開發平台,以使用windows template studio實現快速應用程式開發為重點。但是,為了把lob開發人員吸引到uwp平台,他們在做的事情不止這些。最初發布時,通用windows平台 uwp 只是被視為一種在windows商店中銷售應用程式的方...