【发布时间】:2012-03-19 11:00:30
【问题描述】:
我最近使用 NuGet 安装了 Facebook C# SDK,我想知道为什么这些类型没有关联的接口。
我想做的是将 SDK 中的类型注入到我的应用程序中,但是目前我不确定我是否遗漏了某些东西,或者 SDK 不包含除 IFacebookApplication 之外的任何接口。
其他人在使用此 SDK 时如何对其代码进行单元测试?我应该自己下载和实现接口而不是使用 NuGet 安装程序吗?
【问题讨论】:
-
尽管我对它有过短暂的体验,但我认为 Facebook C# SDK 的 API 很糟糕。除了接口之外,您将很难找到响应对象或方法参数、访问令牌等的类。我认为编写包装类也是浪费时间,因为它几乎没有提供任何可构建的东西。我希望有比这更好的库。
-
facebook 一直在改变他们的响应对象/类型。你已经被警告过了。 Facebook C# SDK 是一个轻量级包装器,旨在显式缓解此问题;您不希望像强类型库那样每周都等待库开发人员推送更改。
-
即使他们一直在改变他们的 API(我认为这是一件坏事),强类型是不是要求太多了?他们无论如何都会在更改 API 时破坏我的代码,因此他们让所有开发人员维护自己的代码,而不是维护他们的 SDK。我期望从 Facebook SDK 中获得一些抽象是错误的吗?
-
@UfukHacıoğulları - 整个 Facebook API 表面将有 1000 种类型。虽然可以创建强类型包装器,但要维护的工作量很大。 Facebook C# SDK 实际取代的库(Facebook Developer Toolkit)正是由于这个原因而失败 - 他们试图围绕 Facebook API 构建类型,最终该库变得无法维护。最大的问题是,更改不仅会破坏您的代码,还会破坏 SDK,因此我们必须在每次更改时发布 Facebook.dll 的新版本。
-
最大的原因是它让改变变得更加困难。如果我们想添加一个新的方法或属性,我们将不得不 1) 打破非常糟糕的接口或 2) 创建一个新的接口 IFacebookClient2 ,这很混乱。我们可以改用抽象类,但我们的偏好是让 SDK 尽可能基本,让开发人员根据需要填写附加内容。
标签: c# sdk facebook-c#-sdk