我应该使用哪种.NET REST方法/技术/工具?


16

我正在实现RESTful Web服务和几个主要在Silverlight中的客户端应用程序。我在开发API的服务器端和客户端时发现了很多选择,但不确定哪种方法最好。我担心的是稳定性以及一个从现在开始几个月将继续存在的平台。

我们开始将REST Starter Kit与.NET 3.5一起使用,但在更新到.NET 4.0时,移至新的WCF Web API。他们所有的文档都表明WCF Web API替代了RSK。但是,Web API仅在Preview 4中,尚不包括对Silverlight或Windows Phone 7客户端的支持。

WCF Web API看起来像System.ServiceModel.Web库中提供的WCF WebHttp Services东西的包装,这使我认为仅使用内置东西可能会更简单,但是Web API确实提供了一些不错的功能。

我特别想尝试为客户端确定最佳课程。我的主要要求是我需要支持快速,轻松地将反序列化到客户端对象中。Web API提供了一个不错的客户端库,但没有Silverlight版本。

我想使用正在积极开发和支持的最新方法和工具集。

  1. REST入门工具包真的过时了吗?

  2. 有没有人成功实现WCF Web API工具包?

  3. 通过内置的WCF WebHttp Services功能使用这些功能是否值得System.ServiceModel.Web

  4. 是否有适用于任何客户端(Web,Silverlight等)的单一解决方案?

您有什么建议?


我强烈建议您使用servicestack
Mithir

Answers:


6

为了跟进和结束本篇文章,在Preview 5中,WCF Web API取得了巨大的飞跃,这使得创建REST API变得异常简单。虽然当前Codeplex上的代码库不包括Silverlight客户端,但那里提供了一个工具包,我能够轻松地从开源代码中剥离Async-CTP部件并创建SL版本。

我强烈建议有兴趣使用WCF进入REST的任何人查看该框架:http : //wcf.codeplex.com

仅供参考-它将是.NET 4.5的集成部分,并且当前正在被重写为与ASP.NET MVC在相同的核心框架上运行(尽管我被告知它肯定仍将支持自托管)。


1

我还没有使用REST入门工具包,但是由于我目前正在编写.net 4.0 WCF REST API,因此我相当确定它仍然存在:)

我建议您看看odata。它以惊人的快速和简单的代码编写,并与Silverlight完美配合。


WCF Web API工具包提供的功能之一是对OData的支持,效果很好。但是,没有Silverlight版本对我没有帮助。您如何在客户端处理反序列化?
SonOfPirate 2011年

我只用WP7 silverlight做到了。我刚刚添加了一个服务引用,并称之为。您可以使用Web客户端并自行反序列化响应,尽管这样做对您而言更好。这并不难
汤姆·斯奎尔

我不认为使用webHttpBinding通过WCF启用REST支持mex端点。您如何添加服务参考?那是我偏爱共享包含我的数据合同的公共库。
SonOfPirate 2011年

是的,我刚刚添加了服务参考。您可能需要在配置文件中定义端点。
Tom Squires

我刚刚(艰难地)了解到Silverlight不支持WebHttpBinding。因此,即使我能够公开一个混合端点并添加服务引用,该服务也无法进行呼叫,因为它无法解析该端点。
SonOfPirate 2011年

1

WCF Web API不提供用于生成服务代理的任何元数据信息,因此能够添加服务引用。它旨在像在ASP.NET MVC 4 Web API框架中一样,在WCF保护伞下轻松生成REST服务。

因此,不支持WP7或Silverlight,但是对于其余的Web站点几乎是完美的。

但是,WCF数据服务看起来很合适,它使您可以创建RESTful服务并轻松地使用Silverlight来使用它们。


我们已经将Web API与Silverlight客户端一起使用了将近一年,没有任何问题。
2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.