您是否会将WCF Linq和JSON用于API

时间:2010-06-16 23:42:38

标签: .net wcf silverlight json api

好的我正在建立一个API,但也想让我自己的应用程序使用该API。 我正在为我的Web服务和数据以及我的应用程序的Silverlight思考WCF,LinQ和JSON。

我有几个问题。

1)你会推荐XML over JSON或Json over XML吗?    a)Json是否会更快地进行传输和反序列化,或者XML会更快地传输和反序列化?

2)使用LINQ会阻止任何人连接到我的服务表单PHP吗?

3)你会推荐不同的东西吗?

1 个答案:

答案 0 :(得分:2)

放慢那里的伙伴吧! ; - )

我认为你有点困惑自己很多缩略词....让我们分解并更好地理解每种技术。

我认为这就是你想要的:

  • 以webservice形式提供的API,以及Silverlight中的客户端应用程序。
  • 您还希望除silverlight之外的客户端使用您的Web服务API

是吗?让我知道,我们可以进一步分解。

更新

好的,当你说LINQ时,你必须指的是Linq2Sql?在这种情况下,这是您的数据层...因此,您使用哪种技术进行数据访问并不重要,因为您的所有Web服务都应该提供DTOs

至于序列化...因为你想使用WCF,并且只要你使用DTO,那么你应该独立于序列化构建你的API。这可以通过您在WCF中配置的“绑定”类型来处理。所以,现在,它应该没关系。

在这方面,因为你可以为每个服务提供多个“WCF端点”,你可以提供一个JSON,一个XML(restful),甚至一个SOAP ..而不需要编写太多的额外代码。< / p>

我个人更喜欢XML,因为使用Linq到Xml解析.net非常容易,但JSON不那么冗长,可以说占用空间更小。

回复您的评论

嘿rico,谢谢。不太好。

因此,您的silverlight应用程序只是一个消耗您的Web服务的客户端。

您的网络服务将以DTO的形式向您的客户提供所需的任何数据。您当然可以在您的客户端中使用某种系统来缓存DTO,这样您就不必一直调用Web服务......或者您可以提出某种同步解决方案....但是这两种方式都是如此。 ...

...您的网络服务是唯一一个与数据库通信的服务器,而数据库又存在于您的服务器上。因此,它是您的Web服务,与您的DAL(数据访问层)对话,而这反过来可以实现Linq2Sql或任何其他数据访问技术。