2011-03-22 54 views
5

我即將開始構建一個將在所有平臺上使用的應用程序。我將使用monotouch和monodriod,這樣我就可以保存東西了.net構建一個應用程序來迎合WP7,Iphone和Android

我有點懶,所以我想盡可能地重複使用儘可能多的代碼。

可以說我想創建一個存儲聯繫信息的應用程序。例如名稱&電話號碼

我的應用程序需要能夠從Web服務檢索數據並在本地存儲數據。

MVVM模式看起來像的路要走,但林不知道我下面的方法是100%正確的

這是正確的嗎?

  1. 包含我的模型
  2. 包含我的看法,本地存儲的方法和還可以查看我結合我的看法模型一個項目一個項目。在這種情況下,將是用於綁定的服務和本地數據存儲

任何建議將是巨大的基礎上,3個操作系統的

  • 數據訪問層項目3個不同的項目。

    感謝您的時間

  • +0

    嘗試搜索SO,最近這個問題已經被問了幾次(我懶得自己搜索:)) – Praetorian 2011-03-22 22:55:56

    回答

    5

    未進行具體回答你的問題,但這裏有一些懶惰的三分球......

    • 你絕對可以重複使用跨所有三個平臺(加MonoWebOS大量的代碼? )
    • 重用代碼是很容易的,但你需要保持單獨的項目文件中每個平臺上的每個庫(這可能是件苦差事)
    • MVVM肯定適用於WP7。這不是很以及在MonoTouch的照顧和MonoDroid的
    • 一些你需要爲每個設備單獨代碼的主要領域有:
      • UI抽象 - 每個平臺都有自己的「標籤」的理念,以「列表」, 「烤麪包」 等
      • 網絡業務 - System.Net能力每個
      • 文件IO
      • 多任務處理能力
      • 裝置相互作用稍有不同(例如,位置,進行呼叫等)
    • 接口抽象和IOC(Ninject?)可以與所有這些
    • 同樣的單元測試的幫助應該能夠運行所有3個平臺?

    更新 - 我不能相信我只是碰到我自己的答案跌跌撞撞...:)除了這個答案,你可能想看看MonoCross和MvvmCross - 毫無疑問,很多其他的混合平臺的方式:

    1

    我認爲一次編寫代碼並在所有三個平臺上都能正常工作的最簡單方法可能是基於Web的應用程序。例如,請查看Untappd

    1

    您可以先看看Robert Kozak的MonoTouch MVVM框架。這只是一個開始。

    MonoTouch MVVM

    +0

    有一個GitHub項目可以讓你使用Visual Studio編寫除UI之外的所有內容。 https://github.com/follesoe/VSMonoTouch 另外,他有一個關於做跨平臺移動開發的非常好的教程https://github.com/follesoe/FlightsNorway/tree/workshop – 2011-06-07 17:57:40

    2

    Jonas Follesoe's cross platform development talk:有此刻是最全面的資源在那裏。他談到了如何最好地共享代碼和資源,抽象出UI和UX的許多差異,展示跨平臺MVVM的可重複使用的可行性以及將幾乎自動構建的好技術。 (是的,這包括一種方法可以讓你編譯你在Visual Studio上單擊的東西)

    最重要的是,他有一個可用的成品源代碼和一些主要組件分別放置在自己的車間項目和一份50頁以上的pdf格式,詳細說明了這樣做的步驟。 FlightsNorway on github

    IMO唯一缺少的是如何最好地處理跨所有平臺的本地數據存儲。在這種情況下,我會告訴你Vici Cool Storage是一個ORM,可以與WP7,MonoTouch和MonoDroid(雖然不是官方支持)一起工作。

    *免責聲明*網站文檔不是最新的,但源代碼可用。 (因爲文檔是許多程序員的Kriptonite)