Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编程到接口-Facebook C#SDK_C#_Sdk_Facebook C# Sdk - Fatal编程技术网

编程到接口-Facebook C#SDK

编程到接口-Facebook C#SDK,c#,sdk,facebook-c#-sdk,C#,Sdk,Facebook C# Sdk,我最近使用NuGet安装了FacebookC#SDK,我想知道为什么这些类型没有关联的接口 我想做的是将SDK中的类型注入到我的应用程序中,但是目前我不确定我是否遗漏了一些东西,或者SDK只是不包含除IFacebookApplication之外的任何接口 在使用此SDK时,其他人如何对其代码进行单元测试?我应该自己下载并实现接口而不是使用NuGet安装程序吗?我们不使用Facebook C#SDK的接口。我们使用SDK的目标是使其尽可能简单。实际上,我建议您实现自己的存储库对象,利用Facebo

我最近使用NuGet安装了FacebookC#SDK,我想知道为什么这些类型没有关联的接口

我想做的是将SDK中的类型注入到我的应用程序中,但是目前我不确定我是否遗漏了一些东西,或者SDK只是不包含除IFacebookApplication之外的任何接口


在使用此SDK时,其他人如何对其代码进行单元测试?我应该自己下载并实现接口而不是使用NuGet安装程序吗?

我们不使用Facebook C#SDK的接口。我们使用SDK的目标是使其尽可能简单。实际上,我建议您实现自己的存储库对象,利用FacebookClient对象,而不是将FacebookClient对象注入到您的对象中(如果您想使用接口)


另一个选项是模拟FacebookClient。我们在测试中使用Moq,但任何模拟库都应该工作。

我们不使用Facebook C#SDK接口。我们使用SDK的目标是使其尽可能简单。实际上,我建议您实现自己的存储库对象,利用FacebookClient对象,而不是将FacebookClient对象注入到您的对象中(如果您想使用接口)


另一个选项是模拟FacebookClient。我们在测试中使用Moq,但是任何模拟库都应该可以工作。

尽管我有过一段简短的经验,但我认为Facebook C#SDK的API很糟糕。除了接口,您将很难找到响应对象、方法参数、访问令牌等的类。我认为编写包装器类也是浪费时间,因为它几乎不提供任何可构建的内容。我希望有比这更好的库。facebook一直在改变他们的响应对象/类型。你已经被警告过了。FacebookC#SDK是一个轻量级的包装器,旨在明确缓解这个问题;你不想像对待强类型库那样,总是等待库开发人员每周推动更改。即使他们一直在更改API(我认为这是一件坏事),强类型是否要求太多?当他们改变API时,他们会破坏我的代码,所以他们没有维护他们的SDK,而是让所有开发人员维护他们自己的代码。我期望从Facebook SDK中得到一些抽象是不是错了?@UfukHacıoğulları-整个Facebook API表面将有1000种类型。虽然创建强类型包装器是可能的,但要维护它需要做大量的工作。Facebook C#SDK实际取代的库(Facebook开发者工具包)正是因为这个原因失败的——他们试图围绕Facebook API构建类型,最终该库变得无法维护。最大的问题是,更改不仅会破坏您的代码,还会破坏SDK,因此每次更改Facebook.dll时,我们都必须发布一个新版本。最大的原因是它使更改变得更困难。如果我们想添加一个新的方法或属性,我们必须1)破坏非常糟糕的接口,或者2)创建一个新的接口IFacebookClient2,这很混乱。我们可以使用抽象类,但我们的偏好是尽可能保持SDK的基础性,并让开发人员根据自己的喜好填写额外的内容。尽管我对它有过短暂的经验,但我认为Facebook C#SDK的API很糟糕。除了接口,您将很难找到响应对象、方法参数、访问令牌等的类。我认为编写包装器类也是浪费时间,因为它几乎不提供任何可构建的内容。我希望有比这更好的库。facebook一直在改变他们的响应对象/类型。你已经被警告过了。FacebookC#SDK是一个轻量级的包装器,旨在明确缓解这个问题;你不想像对待强类型库那样,总是等待库开发人员每周推动更改。即使他们一直在更改API(我认为这是一件坏事),强类型是否要求太多?当他们改变API时,他们会破坏我的代码,所以他们没有维护他们的SDK,而是让所有开发人员维护他们自己的代码。我期望从Facebook SDK中得到一些抽象是不是错了?@UfukHacıoğulları-整个Facebook API表面将有1000种类型。虽然创建强类型包装器是可能的,但要维护它需要做大量的工作。Facebook C#SDK实际取代的库(Facebook开发者工具包)正是因为这个原因失败的——他们试图围绕Facebook API构建类型,最终该库变得无法维护。最大的问题是,更改不仅会破坏您的代码,还会破坏SDK,因此每次更改Facebook.dll时,我们都必须发布一个新版本。最大的原因是它使更改变得更困难。如果我们想添加一个新的方法或属性,我们必须1)破坏非常糟糕的接口,或者2)创建一个新的接口IFacebookClient2,这很混乱。我们可以使用抽象类,但我们的首选是尽可能地保持SDK的基础性,并让开发人员根据自己的喜好填写额外的内容。感谢Nathan,感谢他花时间回答并澄清了这一点。感谢Nathan,感谢他花时间回答并澄清了这一点。