2016-05-09 10 views
0

私は似たような疑問を見つけませんでした。PCLライブラリと非PCLコードを混ぜる

私はクロスプラットフォーム(Xamarin)プロジェクトの中で単にそれらを使用するのではなく、 "普通の"普通のWindows x86 C#プロジェクトでもC#ベースのPCLライブラリを使いたいと思っています。

これは、基本的にレガシープロジェクトのバックポーティングです。将来のプロジェクトのためにPCLコードに切り替え、古いコードでも新しい機能を使用したいと考えています。ご想像のとおり、これらのプロジェクトは、C#ランタイム(つまり4.0)の古いバージョン用に少なくとも部分的に開発されています。

私の質問はこれです:私の基本的なユニットテストが合格すれば、ライブラリは似たように動作すると思いますか?いいですか?あるいは、ライブラリの適切な機能を検証することを困難にするランダムな動作がありますか?私は、HttpClientコードが予期しない動作をすることについて読んだ記事や質問について特に心配していますが、さまざまなランタイムバージョン(4.0 - 4.5)間でも一貫して間違っているわけではありません。したがって、チームは再現できない問題を追跡し、サポートチームの週末を壊すでしょう。

質問がすべての面でわかりやすい場合は、わかりやすいことを教えてください。わかりにくいのであれば、私は人々が提案をした後にそれを言い換えることができます...。

答えて

0

PCLのプロジェクトプロパティでは、サポートする.NETのバージョンとプラットフォームを確認できます。 バックグラウンドでは、選択したgehtは、選択したすべてのプラットフォームでサポートされているAPIのみが使用可能な移植可能なサブセットプロファイルにマップされています。

(のPCLはしかしXamarin特定のものではありません。)

プラットフォームの実装の詳細は、タイマー(彼らはさらにいくつかのポータブルサブセットに含まれていない)と、たとえば、漏れる場合があります。

あなたのユニットテストはおそらく失敗し、いくつかの特定の問題に気づくと、そこにさらにテストを追加できます。

HttpClientの場合、パフォーマンス上の理由から、プラットフォーム固有のクライアントに依存性を注入することをお勧めします(modernhttpclientなど)。

+0

ありがとうございました。私はこれが私を得るところを見ようとします。 –