2012-09-03 83 views
1

我正在考慮將應用程序移植到Windows 8地鐵。主引擎是一個C++庫,所以我所要做的就是創建GUI(然後將其掛接到C++引擎)。Windows 8地鐵,手機和桌面應用程序之間的代碼共享

我想知道如果創建一個metro應用程序,我能夠使用相同的代碼,並建立它的桌面(Windows 7等)?如果有額外的工作多少錢?

同樣在未來,我將研究創建一個Windows 8移動應用程序,我能夠分享任何城域GUI代碼,還是最好從頭開始?

該項目是一個龐大的項目,因此代碼重用是一個很大的積極。

+0

有這麼多, 「依賴」 在這裏。如果你的代碼叫做metro API,那麼不行,它不能共享。如果您的代碼稱爲桌面API,則不能共享。 –

回答

2

每個平臺的UI層有很大不同;然而,他們接觸的方式有共同點。例如,C#/ VB/XAML可以用於Phone,Windows,Desktop(甚至是web:Silverlight),但是在特定功能,支持的屬性等方面存在差異,這使得難以「重新編譯」

在我看來,你最好的選擇就是採用一種模式,其中的差異是孤立的。用於跨平臺的GUI應用程序的MVVM is a great candidate。它需要爲每個目標設置不同的UI層 - 但是無論如何您都希望利用形式因子,用戶期望值等。在每種情況下,代碼都可以是C#/ VB XAML,但可能會重用一些構造和資產(即使通過複製和粘貼)。在幕後,「管道」可能完全相同,無論是內部業務對象層還是雲中的Web服務。

就後端而言,也存在平臺差異,Portable Class Library可以幫助緩解特別是對於未來工作的影響。展望未來,像Windows 8 Shared Core這樣的公告肯定會讓這樣的工作更容易。

在WPF和Silverlight等平臺上有大量的帖子和指導可供重用,許多主題都是類似的,儘管細節可能不是特定於您的目標平臺。以下是其中的一些內容,可以幫助您構建您的方法,並且不再關注使用「Silverlight」,而是關注文章中討論的技術和關注點。

Sharing Code Between Silverlight and WPF
Reusing your existing Silverlight components with Windows Phone 7

+0

這就是我所害怕的。我想在這種情況下,它將是一個僅適用於metro的應用程序。實際完成時,可能會有更輕鬆的移植工具。 – Zammbi

相關問題