簡體   English   中英

如何在考慮網絡和移動應用的情況下實現桌面應用程序開發?

[英]How to approach desktop application development with web and mobile apps in mind?

我的任務是制作一個具有'性感'**外觀的桌面應用程序。 我打算用WPF來實現這一目標。 其中一個要求是桌面應用程序稍后將擴展為ASP.NET MVC Web應用程序,然后擴展到移動(可能是Android第一)應用程序,同時保持相同的外觀和感覺。

**在這種情況下,“性感”意味着滑動菜單,以及一般的現代外觀和感覺

考慮到這一點,如果我想重用組件(和/或)樣式,在開始桌面UI設計時最好的方法是什么?

例如,在創建桌面應用程序時,我將使用XAML作為UI,但考慮到應該看起來與桌面相同的應用程序的Web版本,我應該/可以使用HTML / CSS嗎? 想到這一點是否荒謬?

你會得到1000個問題的答案,但是,我認為這是不太可能的。 我將嘗試解釋原因(僅考慮用戶界面)。

為什么

對我而言,關鍵不在於您可以重復使用,而是您應該重復使用的內容。

桌面應用程序,Web應用程序和移動應用程序是不同的。 不同的目標,不同的用戶界面,不同的標准 例如,您喜歡的文字處理器的使用方式適用於桌面應用程序(菜單,功能區,上下文菜單和其他任何內容),但它不適合Web應用程序。 在您導航的Web應用程序中,可能您沒有很多對話框,用戶可以在頁面之間前后移動。 現在想象一下移動設備的相同應用! 它必須設計成與手指一起使用,按鈕必須很大並且它根本不應該有對話框(而且我簡化了主題)。

對於這些平台,應用程序甚至不應該相似 ,每個平台都有自己的特性和指南 如果您不遵循它們,即使用戶界面非常性感,您的用戶也會對您的應用程序感到不舒服。 如果你想為web編寫一個好的應用程序,那么請確保它與桌面版本不同(有時,但這取決於應用程序的類型,完全不同),移動版本將更加不同(甚至不管語言)和發展環境)。
您是否想象StackOverflow網站的桌面版本? 你認為它應該看起來和表現一樣嗎? 我猜你的回答將是“不”,即使我們都很欣賞SO如何為網絡工作。

看看這個:

即使沒有針對Web的標准指南,也請查看本文(並想象一下將這些技巧用於桌面應用程序):

你能看到多少個接觸點? 此外,對於一組受限制的應用程序,您可能會收集一些用於Web的UI和用於桌面的UI(移動應用程序在使用中總是太不同),但這取決於您擁有的用戶類型及其背景和經驗。

什么

如果使用WPF編寫應用程序,則可以重用部分代碼來為Web構建Silverlight應用程序。 我相信你不會重復使用所有東西,因為對於真實世界的應用程序,它們的差異太大了。

對於Android(甚至考慮為Mono編寫)你根本不能重復使用它們(好吧,它將是一個參考,但你必須重寫)。 當然,如果您使用Windows Phone,您的XAML將被部分重用,甚至是您的代碼。

使用HTML / CSS的想法也不錯,你可以用HTML5 / CSS3 / JavaScript編寫一個桌面應用程序 ,它可以在任何地方運行(桌面有Windows 8,網絡和手機)。 好的,至少有一些修改。

不要忘記可以從移動設備使用Web應用程序。 您可能必須使用適當的CSS(並且可能使用您喜歡的JavaScript框架的移動版本 )來優化應用程序,但這不是一個(如此)的大工作。

在我看來,“一次到處寫”的概念是一個無法獲得的烏托邦。 一般而言,如果您希望用戶獲得最佳體驗,則更具體。

一方面,您可以確定使用適用於所有桌面平台的嵌入式Web瀏覽器下載HTML / CSS路線,可能是Windows或Mac。 擁有熟練的設計師和良好的用戶體驗編程技能,您可以獲得出色的成果。 其中一些部分可能還可以作為移動版本重新使用,適用於所有主流移動操作系統,iOS,Android和Windows Phone的PhoneGap / jQuery Mobile / Kendo UI Mobile解決方案。 潛在的缺點是應用程序不會在任何一個平台上看起來像本機應用程序。 適用於Android的 Xamarin Mono TouchMono也可以用來觀看

另一方面,您可以將應用程序邏輯放在Web上的ASP.NET Web API解決方案之后,通過Azure ACS或OAuth進行授權(如果需要)。 在WPF中為桌面開發本機應用程序,為Android開發Java,您甚至可以重用一些用於Windows Phone的XAML。

就個人而言,后一種解決方案最適合我的純粹主義者,但正如您所提到的,如果品牌和外觀非常重要(以原生外觀為代價),第一種選擇可能更適合您的需求。

像往常一樣,“這取決於”,因為答案仍然很強勁。

JavaScript正在針對以上所有問題運行。使用JavaScript,創建桌面應用程序(Electron),移動應用程序(reactnative),Web也是React更好的技術

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM