當前位置:
首頁 > 最新 > 微軟把UWP定位成業務線應用程序開發平台

微軟把UWP定位成業務線應用程序開發平台

微軟把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應用程序。

Windows UI庫

用戶控制項是任何UI框架的核心。強大的用戶控制項模型促成了Visual Basic在20世紀90年代的流行,並且仍然使桌面應用程序的開發速度高於基於HTML的解決方案。但是,UWP部署模型給它帶來了一些不必要的限制。

由於主要的用戶控制項(又名平台控制項)已經變成了OS的一部分,所以,應用程序在採用新控制項時必須非常保守。有些公司的機器雖然運行著Windows 10,但其版本經常比正式發布的版本落後兩個版本,這時候問題會尤為突出。

為了解決這個問題,平台控制項現在作為NuGet包發布。這使得開發人員可以利用新控制項,而不必等待公司的其他部門都升級到最新的Windows版本。這些NuGet包至少需要2016年8月發布的Windows周年紀念版。

這些控制項填補了UWP生態系統中眾所周知的空白,如缺少tree-view、菜單欄或顏色選擇板。

.NET Standard

藉助.NET Framework和.NET Core,UWP現在支持.NET Standard 2.0。這使得開發人員可以把他們的業務邏輯和數據模型遷移到.NET Standard庫。那樣,他們就可以在傳統的桌面應用程序、網站或UWP應用之間共享同樣的代碼。理論上講,這將簡化從WinForms/WPF到UWP的遷移。

UI密度

微軟把UWP中的默認空間和大小描述為「慷慨提供了大量空白」。計劃在今年發布的Windows版本將改變這種默認情況,通過自動減少控制項尺寸、控制項之間的填充空間、字體大小,釋放更多屏幕實際使用面積,一般來說,就是讓一切更緊湊。按照他們的估計,你可以把屏幕上的控制項數量增加約三分之一。

開發人員可以通過選擇簡潔模式進一步縮小控制項的尺寸。控制項之間的空間減少了大約40%,一次可以看到的數據增加了大約50%。這項特性主要是針對數據密集型的業務線應用程序。

顏色主題

眾所周知,一個令人愉快的顏色主題會增加用戶對工具的信任。但是,對於像UWP/XAML這樣複雜的樣式模式,通常甚至沒有時間應用最基本的顏色。基本上,問題在於,每種控制項類型的樣式都需要單獨更新,然後再測試整個主題。在構建業務線應用程序時,很少有足夠的時間這樣做。

有一款新工具,姑且稱之為「Color Demo」,就是要解決這個問題。使用簡單的顏色選擇器,就可以預覽主題,生成必要的資源字典,包含到應用程序中。

而且,它會提示你顏色選擇可能導致的問題,如沒有足夠的對比度使文本可讀。

這還不如全樣式的XAML應用程序豐富,但是,它可以為應用程序提供足夠的修飾,使它看上去有一個專業的外觀。

數據驗證UI

UWP還有另外一個明顯的不足,就是缺少數據驗證支持。這個疏忽很奇怪,因為數據驗證從一開始就是.NET UI框架的一部分。(我們在文章「C# API中的模型和它們的介面設計」中討論過其中部分介面)。

今年新增的功能是在基於屬性的驗證中使用INotifyDataErrorInfo介面。當一個模型暴露了這個介面,UI就能夠自動顯示正確的錯誤信息。它顯示錯誤的具體方式取決於你在控制項中選擇了哪個模式。

實現INotifyDataErrorInfo介面並不簡單,涉及許多把基於屬性的驗證附加到INotifyDataErrorInfo介面的樣板代碼。因此,你也許會希望找一個MVVM框架來幫你處理。[本文作者的Tortuga Anchor庫就是這樣一個例子。]

新XAML控制項:Data Grid

對於非UWP開發人員,沒有提供開箱即用的Data Grid看上去相當奇怪。

對於業務線開發人員,UI框架不提供Data Grid幾乎是不可想像的。甚至是早在上世紀90年代中期,這個控制項的一個變體就已經成為無數業務應用程序的核心。許多在考慮UWP的開發人員驚訝地發現,微軟已經從WPF或Silverlight移植了Data Grid。

這最終是通過Windows Community Toolkit解決的。新的DataGrid控制項所需要的XAML看上去和在WPF中非常像。

下周,我們將深入介紹Windows Community Toolkit。

原文地址:http://www.infoq.com/cn/news/2018/08/UWP-LOB-Win10


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 dotNET跨平台 的精彩文章:

日行千里,全憑「車」況,為什麼我們要升級平台
ASP.NET Core MVC+EF Core從開發到部署

TAG:dotNET跨平台 |