5

すべてのプラットフォームで使用されるアプリの構築を開始しようとしています。モノタッチとモノドロイドを使用して、.net に保存できるようにします

私は少し怠け者なので、できるだけ多くのコードを再利用できるようにしたいと考えています。

連絡先情報を保存するアプリケーションを作成したいとしましょう。例: 名前と電話番号

私のアプリケーションは、Web サービスからデータを取得し、データをローカルに保存できる必要があります。

MVVM パターンは進むべき道のように見えますが、以下の私のアプローチが 100% 正しいかどうかはわかりません

これは正しいです?

  1. 私のモデルを含むプロジェクト
  2. ビュー、ローカル ストレージ メソッド、およびビューをバインドするビュー モデルを含むプロジェクト。この場合、3 つの OS に基づいて 3 つの異なるプロジェクトが存在します。
  3. サービスおよびローカル データ ストレージへのバインドに使用されるデータ アクセス レイヤー プロジェクト

どんな提案も素晴らしいでしょう。

御時間ありがとうございます

4

4 に答える 4

5

あなたの質問に具体的に答えているわけではありませんが、ここにいくつかの怠惰な指針があります...

  • 3 つのプラットフォームすべて (および MonoWebOS ?!) で多くのコードを確実に再利用できます。
  • コードの再利用は非常に簡単ですが、各プラットフォームのライブラリごとに個別のプロジェクト ファイルを維持する必要があります (これは面倒な作業になる可能性があります)。
  • MVVM は確かに WP7 で動作します。MonoTouch や MonoDroid では十分に対応できていません。
  • デバイスごとに個別にコーディングする必要がある主な領域の一部は次のとおりです。
    • UI の抽象化 - 各プラットフォームには、「タブ」、「リスト」、「トースト」などの独自のアイデアがあります。
    • ネットワーク操作 - System.Net 機能はそれぞれでわずかに異なります
    • ファイルIO
    • マルチタスク機能
    • デバイスの操作 (位置情報、通話など)
  • インターフェイスの抽象化と IoC (Ninject?) は、これらすべてに役立つ可能性があります
  • 同じ単体テストで 3 つのプラットフォームすべてを実行できるはずですか?

更新 - 私は自分の答えに出くわしたなんて信じられません... :) この答えに加えて、MonoCross と MvvmCross を見たいと思うかもしれません - そして間違いなく他の多くのハイブリッドプラットフォームが途中で:

于 2011-03-23T00:04:33.053 に答える
2

Jonas Follesoe のクロス プラットフォーム開発に関する講演: 現時点で最も包括的なリソースである必要があります。彼は、コードとリソースを共有する最善の方法、UI と UX の違いの多くを抽象化する方法、さまざまなプラットフォームで実行可能な再利用可能な MVVM の使用法、およびほぼ自動化されたビルドをまとめる優れた手法について語っています。(はい、Visual Studio でモノタッチのものをコンパイルする方法が含まれています)

何よりも、彼は最終製品のソースコードと、独自のワークショッププロジェクトに個別に配置された多数の主要コンポーネントのソースコードと、その手順を詳述した 50 ページ以上の pdf を持っています。github のフライトノルウェー

IMO に欠けているのは、すべてのプラットフォームでローカル データ ストレージを処理する最善の方法だけです。その場合は、WP7、MonoTouch、および (公式にはサポートされていませんが) MonoDroid で動作する ORM であるVici Cool Storageを紹介します。

*免責事項* サイトのドキュメントは最新のものではありませんが、ソース コードは利用可能です。(ドキュメンテーションは多くのプログラマーにとって Kriptonite であるため)

于 2011-09-18T18:36:10.680 に答える
1

まず、RobertKozakのMonoTouchMVVMフレームワークを確認します。しかし、それはほんの始まりにすぎません。

MonoTouch MVVM

于 2011-03-23T06:40:41.473 に答える
1

コードを 1 回記述して 3 つのプラットフォームすべてで動作させる最も簡単な方法は、おそらく Web ベースのアプリケーションになると思います。たとえば、Untappdを確認してください。

于 2011-03-23T01:02:48.153 に答える