4

私のシナリオ: 当社が作成したアプリケーションのごく一部を、ネイティブ コード (iOS の場合は ObjC、Android の場合は Java) から C-Sharp に移植しようとしています。プロジェクトは、Web サービスと対話します。このプロジェクトの目標は、アプリ全体を Mono に移植することがどれほど実現可能かを理解することです。

URL を作成するには、 を使用したいと思いますString.Format()。この「サービス レイヤー」をポータブル クラス ライブラリ (PCL) 内に配置するのが賢明だと思いました。このコードはプラットフォーム間で変更されるとは思わないからです。残念ながら、String ライブラリは PCL では利用できないようです。

だから私の質問は次のとおりです。

  1. 「通常の」ライブラリに対する PCL の主な利点は、異なるプラットフォーム用に再コンパイルする必要がないことです。この仮定は正しいですか?
  2. この経験から、今のところPCLはかなり限られていると思います。PCL を使用してこの種の問題を回避する必要がありますか?それとも、今のところ「通常の」ライブラリを使用する方がよいでしょうか? --- 「通常の」ライブラリには、より多くの機能が公開されていると想定します。
4

2 に答える 2

10

現在、多くのプラットフォームで PCL を使用できますが、セットアップにいくつかの小さなハックが必要です。

これらのハックはhttp://slodge.blogspot.co.uk/2012/12/cross-platform-winrt-monodroid.htmlにリストされています

それらが機能するようになると、利用可能な機能は非常に幅広くなり、String.Format のようなものが確実に含まれます。

PCL プロファイルが十分に広くない状況では、それらを拡張するためにいくつかの手法を使用できます - http://blogs.msdn.com/b/dsplaisted/archive/2012/08/27/how-to-makeを参照してください-portable-class-libraries-work-for-you.aspx . 私が一般的に使用する手法は、MvvmCross プラグインを使用することです。これは基本的に、プラットフォーム固有の実装を備えた PCL インターフェイスです。しかし、これらのプラグインは通常、String.Format のレベルではなく、「Bluetooth を機能させる」レベルにあります。

WinRT、WP、WPF、MonoTouch、Mono for Android で多くの PCL 作業を行っています。PCL作業への多くのリンクについては、 http: //slodge.blogspot.co.uk/p/mvvmcross-quicklist.html を参照してください。

Xamarin が数年間 PCL を使用しないことを推奨していたのは事実ですが、現在その状況は変わり、PCL の公式サポートが進行中です - http://slodge.blogspot.co.uk/2013/02/the-を参照してください。 future-is-portable.html

開発の観点から、特にリファクタリング ツールとテスト ツールを使用する観点から、今すぐ PCL を使用することをお勧めします。特に String.Format レベルでの操作に使用します。しかし、それぞれのプロジェクトはユニークです... そのため、常に正しい答えとは限りません。


1 つの重要な注意: 現時点では、PCL バイナリ ファイルを MonoTouch プラットフォーム全体で再利用しない方がよいでしょう。現時点では、特定の MonoTouch ライブラリ プラットフォームに対してポータブル ライブラリをビルドしてください。http://slodge.blogspot.co.uk/2013/01/almost-portable-binaries.html?m=1を参照してください。

于 2013-02-08T07:48:17.890 に答える
2

おそらく、モノタッチとモノドロイドで PCL をかなりの程度まで機能させた他の人の取り組みを見たいと思うでしょう。

たとえば、http://www.slideshare.net/cirrious/mvvm-cross-going-portableを参照してください。また、MVVMCross の PCL サポートをセットアップする方法については、http: //slodge.blogspot.co.uk/2012/09/mvvmcross-vnext-portable-class.html を参照してください。

Xamarin は最近、人々が行わなければならなかったいくつかの回避策ではなく、はるかに優れた PCL サポートを提供することを約束しましたが、努力する価値はあります。

于 2013-02-08T07:47:43.010 に答える