翻譯|使用教程|編輯:龔雪|2024-05-20 11:18:13.290|閱讀 78 次
概述:本文將淺談如何為桌面 & 移動跨平臺應(yīng)用程序選擇框架/APP架構(gòu),希望對大家有所啟示!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
DevExpress .NET MAUI UI組件庫提供了用于Android和iOS移動開發(fā)的高性能UI組件,該庫包括數(shù)據(jù)網(wǎng)格、圖表、日程、數(shù)據(jù)編輯器、CollectionView和選項卡組件。
DevExpress技術(shù)交流群10:532598169 歡迎一起進群討論
“一次編寫,隨處運行”——這個口號幫助Java在20世紀(jì)90年代中期獲得了廣泛的普及,從那時起,許多跨平臺框架被引入,比如Ionic、Flutter,當(dāng)然還有.NET MAUI。這些框架允許開發(fā)人員使用相同的代碼,而不考慮底層操作系統(tǒng)/設(shè)備類型。雖然使用單一UI框架可以節(jié)省時間/資源,但這種開發(fā)策略的有效性和效率完全取決于應(yīng)用程序的復(fù)雜性和用戶體驗需求。
跨平臺應(yīng)用的另一種技術(shù)是共享業(yè)務(wù)邏輯和服務(wù),但根據(jù)設(shè)備類型(桌面/移動)使用不同的UI框架。使用這種策略您將共享更少的UI代碼,但可以使用每個平臺的固有優(yōu)勢來制作高質(zhì)量的界面(當(dāng)然,跨平臺/設(shè)備提供最佳的用戶體驗)。
一個完全跨平臺的界面可以幫助開發(fā)團隊減少開發(fā)成本和上市時間,例如使用DevExpress Blazor創(chuàng)建的單個頁面可以通過Blazor Hybrid在Web、桌面和移動應(yīng)用程序中使用。這不僅僅是一個Web組件的WebView封裝器:它允許您在.NET環(huán)境中運行代碼,同時訪問設(shè)備功能,這種策略可以提高團隊的效率,因為您可以共享代碼和專業(yè)知識。
下面的內(nèi)容將幫助您創(chuàng)建一個Blazor Hybrid應(yīng)用程序:。
另一個快速發(fā)展的跨平臺框架是 .NET MAUI,它被設(shè)計成支持不同的設(shè)備類型(桌面、移動、平板),該框架包括一些有用的特性,用于在不同目標(biāo)之間共享代碼:
這些核心功能可以幫助您創(chuàng)建針對不同設(shè)備的單一代碼庫應(yīng)用程序。
下面是一個如何為移動和桌面設(shè)備指定不同布局的示例(移動一欄,桌面兩欄):
<Grid ColumnDefinitions="{OnIdiom Phone='*', Desktop='*,500'}" ... >
這種技術(shù)對于相對簡單的應(yīng)用程序非常有效,然而業(yè)務(wù)應(yīng)用程序通常需要更復(fù)雜的特定于設(shè)備的更改。例如桌面客戶端可能包含帶Ribbon和Docking的復(fù)雜視圖,這些控件通常被移動設(shè)備上的其他元素所取代。
此外,手機上的整個用戶流程可能會有很大的不同。例如,本地單元格編輯在桌面應(yīng)用程序中很常見,但對于移動設(shè)備,您可能更喜歡分別顯示細節(jié)和編輯屏幕,您可以在手機上的許多應(yīng)用程序(如Contacts)中找到這種模式。
下面的圖片說明了一些例子,它可能是具有挑戰(zhàn)性的創(chuàng)建一個單一的UI代碼庫:
當(dāng)期望的桌面界面和移動界面之間存在顯著差異時,創(chuàng)建大量特定于設(shè)備的觸發(fā)器可能會很快使代碼復(fù)雜化(使其難以開發(fā)和維護)。
使用單一UI平臺為代碼共享提供了更多的機會,但是在處理具有復(fù)雜接口的應(yīng)用程序時,利用這些優(yōu)勢是一項挑戰(zhàn)。如果您正在開發(fā)這樣的應(yīng)用程序,可能需要為不同的客戶端類型使用單獨的UI框架,并重用非可視化代碼。這允許您利用每個平臺,并且仍然共享相當(dāng)多的代碼。
在上圖中,客戶端應(yīng)用程序使用不同的UI框架實現(xiàn),而兩個客戶端都使用通用的服務(wù)、業(yè)務(wù)邏輯和服務(wù)器端模塊。根據(jù)您的偏好,可以將所有服務(wù)器邏輯實現(xiàn)為單個服務(wù),也可以創(chuàng)建微服務(wù)基礎(chǔ)設(shè)施。
在客戶端上,您可以選擇最適合的應(yīng)用程序平臺:
由于WPF、WinForms和MAUI都是基于.NET的,您可以可以很容易地重用客戶端服務(wù)、幫助器和模型類。實現(xiàn)更多代碼共享的關(guān)鍵是一個松散耦合的體系結(jié)構(gòu),模塊之間可以相互隔離。MVVM設(shè)計模式將幫助您將視圖與視圖模型解耦,并使用依賴注入輕松引入外部依賴。
如果您采用這種策略,項目結(jié)構(gòu)可能如下所示:
WebApiService - 包含業(yè)務(wù)邏輯和處理對數(shù)據(jù)庫訪問的web服務(wù),注意:您可以使用DevExpress免費Web API服務(wù)來實現(xiàn)服務(wù)器端安全性和基于角色的數(shù)據(jù)訪問。
DevExpress跨平臺 .NET App UI (XAF) 基于類似的想法,數(shù)據(jù)處理、安全性、業(yè)務(wù)邏輯和其他共享模塊被設(shè)計為與視圖無關(guān)的塊,在引入新的可視化客戶端時,您可以輕松地重用大部分代碼。
為給定平臺選擇最佳UI框架至關(guān)重要,因為它決定了開發(fā)過程、用戶體驗,并最終決定了項目的成功。統(tǒng)一的跨平臺UI對于簡單的應(yīng)用程序、最小可行產(chǎn)品(MVPs)或次要設(shè)備的卓越用戶體驗不是主要關(guān)注的時候,這或許是一個有效的解決方案。
對于更復(fù)雜的應(yīng)用程序,共享UI代碼的可能性可能會受到限制,因為桌面設(shè)備和移動設(shè)備的用戶流存在顯著差異。通過分離可視化客戶端并利用每個UI平臺的優(yōu)勢,您可以開發(fā)高影響力的應(yīng)用程序,來高度滿足用戶需求。松耦合體系結(jié)構(gòu)不僅允許廣泛的代碼重用,而且還確保代碼保持干凈、可維護和可測試。
更多DevExpress線上公開課、中文教程資訊請上中文網(wǎng)獲取
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)