2012-03-17 13 views
1

最近NuGetを使用してFacebook C#SDKをインストールしましたが、タイプに関連付けられたインターフェイスがない理由が不思議です。インターフェイスへのプログラミング - Facebook C#SDK

私がしたいのは、SDKのアプリケーションをアプリケーションに挿入することですが、私が何かを見逃してしまったのか、SDKにIFacebookApplication以外のインターフェイス。

このSDKを使用している間、他の人はどのようにユニットのコードをテストしていますか? NuGetインストーラを使用するのではなく、インターフェイスをダウンロードして自分自身で実装するべきですか?

+0

私は簡単な経験を持っていましたが、Facebook C#SDKにはひどいAPIがあると思います。インターフェイスとは別に、レスポンスオブジェクトやメソッドパラメータ、アクセストークンなどのクラスを見つけるのに苦労するでしょう。ラッパークラスを書くことは、ほとんど何も構築できないため、時間の無駄です。それ以上の図書館があることを願っています。 –

+1

facebookは常に応答オブジェクト/タイプを変更します。あなたは警告されています。 Facebook C#SDKは、この問題を明示的に緩和するように設計されたライトラッパーです。厳密に型指定されたライブラリの場合のように、毎週ライブラリ開発者が変更をプッシュするのを常に待っていることは望ましくありません。 – FZdev

+0

彼らはいつもAPIを変えても(これは私が悪いことだと思う)、強くタイピングしすぎて尋ねるのは難しいですか?とにかくAPIを変更するとコードが破損するため、SDKを維持する代わりに、すべての開発者が独自のコードを維持するようになります。 Facebook SDKの抽象概念が間違っていますか? –

答えて

1

Facebook C#SDKのインターフェイスは使用しません。 SDKを使用する私たちの目標は、できるだけシンプルにすることです。インターフェイスを使用する場合は、FacebookClientオブジェクトをオブジェクトに注入するのではなく、FacebookClientオブジェクトを利用する独自のリポジトリオブジェクトを実装することをお勧めします。

もう一つの選択肢は、FacebookClientをモックすることです。このテストではMoqを使用しますが、mockingライブラリは動作するはずです。

+0

Nathanさん、ありがとうございました。 –