3

Xamarin クロスプラットフォーム アプリケーション開発で MVVMCross フレームワークを適応させると、PCL (モデルとビュー モデルを含む) とビュー (各プラットフォーム用) がここにあります。

a) Xamarin.mobile (単一セットの API アクセスを取得するため) はどこにありますか? PCLの中だと思います。しかし、Xamarin.mobile (例: Android と IOS) のさまざまなバイナリが表示されます。すべての Xamarin.mobile ライブラリを PCL 内に配置しますか? 全部同じ名前だけど、衝突しないの?

b) Bluetooth へのアクセスなどのコードはどこに保管しますか (Xamarin.mobile では使用できません)。MVVMCross を使用すると、ビューとビジネス ロジックが切り離されます。イベントが発生した (ボタン クリック) 後にビュー アイテムを作成するためのすべてのコードは、ビューに存在しますか?

c) MVVMCross を適用した条件付きコンパイルはどこで使用できますか? モデルで推測するのですが、ファイルアクセスのみに使用するのですか、それともターゲット プラットフォームに応じて、PCL に配置することでビュー アイテム (Android ではトースト メッセージ) を表示するために使用できますか?

(不適切な場合は言い訳、MVVMCross と Xamarin.mobile に関する情報を収集し、いくつかの理由/混乱を念頭に置きました)

ありがとう!

よろしく、サウラフ

4

1 に答える 1

5

a) Xamarin.mobile (単一セットの API アクセスを取得するため) はどこにありますか? PCLの中だと思います。しかし、Xamarin.mobile (例: Android と IOS) のさまざまなバイナリが表示されます。すべての Xamarin.mobile ライブラリを PCL 内に配置しますか? 全部同じ名前だけど、衝突しないの?

Xamarin.Mobile は移植可能なコードではありません。PCL から直接呼び出すことはできません。

多くの Xamarin.Mobile 関数 (および Xamarin.Mobile がカバーしていない非常に多くの関数) に対して、MvvmCross はプラグインを提供します - https://www.nuget.org/packages?q=mvvmcrossでその一部を確認できます。

XM にある残りのいくつかのメソッド (連絡先検索など) については、次のいずれかを実行できます。

  • Xamarin.Mobile 関数にアクセスするためのポータブル インターフェイス (ファサード) を記述してアクセスします。
  • それらを実装する新しいプラグインを書く

プラグインの詳細については:

b) Bluetooth へのアクセスなどのコードはどこに保管しますか (Xamarin.mobile では使用できません)。

通常、これは上記と同じ方法で行われます。たとえば、Bluetooth の場合は、Sphero の例を見てください。

MVVMCross を使用すると、ビューとビジネス ロジックが切り離されるため、イベント発生 (ボタン クリック) 後にビュー アイテムを作成するためのすべてのコードがビューに存在しますか?

はい - 「ビューの懸念」の場合は、ビューに属します (これは Mvvm コードと同じです)

c) MVVMCross を適用した条件付きコンパイルはどこで使用できますか?

#ifとを含む「条件付きコンパイル」を使用しないようにしていますpartial classes。プラグイン プラットフォーム固有のモジュールで使用することもありますが、一般的には代わりに継承または抽象化を使用しようとします。その理由は、「リファクタリング」や「単体テスト」などのツールを多く使用し、条件付きコンパイルを単純に使用しないためです。これらで動作します。

ファイル リンクやその他のプロジェクト ベースの手法ではなく PCL を使用する利点 (および欠点) の詳細については、「[リンクとして追加] を使用する代わりにポータブル クラス ライブラリを使用する利点は何ですか?」を参照してください。

于 2013-05-15T11:50:40.850 に答える