質問

前にMonotouchで排他的に構築したCross platform Android/iOS appsの構築を開始しました。MonoDroidを評価しています。

私たちのアプリはJSONを消費する必要があり、ServiceStackを使用します。Xamarinには、 https://github.com/xamarin/servicestack

JSONを取得して投稿する責任がある一般的なプロジェクトをお願いします。XamarinによるServiceStackはdifferent DLLs for Android and iOSを持っています。single projectを使用して、JSONにアクセスするためにServiceStackを使用するのですか?

統一された方法でJSONに入るために他のオプションにオープンしていますか?

役に立ちましたか?

解決

by and large、moneotouchに依存しないMonotouch用にコンパイルされていたMonotouch用にコンパイルされています。

ServiceStackはこれの素晴らしい例です。私は個人的にXamarin Mobile Framework製品を渡って複数のプロジェクトに使用しました。

一般的な規則として、FooProjectRestClientのように、ASYNCメソッドを使用して、ASYNCメソッドを使用してすべての呼び出しをWebサービスにカプセル化する傾向があります。そして、それが発生する必要がある種類のセグメンテーションがある場合は、#if defsを使用して共有クラスで発生する可能性があります。

他のヒント

Android特定のライブラリのためのMonotouch および Monoがある理由は、利用可能な(より小さい、シルバーライトのような)プロファイルのためにしばしば(例えば、新しいFX4.0機能に依存するもの)切り取る)。それらはしばしばSILVERLIGHT(またはMONOTOUCHMONODROID)と一緒に定義された同じコードが再コンパイルされます。

Monotouch のみ特別なライブラリairiesの理由は、一般的にその環境(iOSデバイス)がJIT 'を許可しないためです。そのため、コード生成(System.Reflection.Emitなど)または動的に(ダウン)ロードする...しかし、(パフォーマンスが低い)回避策を提供したり、いくつかの機能をスキップしたり、 Special バージョンを維持することは可能です。 Monotouch用。

Single 共有アセンブリ/プロジェクトを持っていることに戻ります。 特殊 Monotouchアセンブリ(一般に、定義されたMONOTOUCHで再コンパイルされた同じコード)は依然として有効な .NETアセンブリとしばしばを使用できます。 Android、Mono、.NET用のモノラル(MONOTOUCHでも、再コンパイルされます)。それは間違いなく最適ではありませんが、それはあなたが試すことができるものです。

別のものは、異なる定義を設定するためのいくつかの解決策(MonotouchApp、M4androidAppなど)にまたがって特別な構成(iPhoneがデバッグするのと同じように)を使用している(iPhoneがデバッグするのと同じように)特別な構成を使用しています(iPhone *。 )。それはあなたが各プラットフォームで最高の機能実装を保つことを可能にすることができます(例えば、同じ機能が異なるように実装されている場合)。

後で最初の(config)を試してから、Monotouchの特別なアセンブリを共有し、ついに(実際には機能しない場合)他の選択肢を探します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top