我花了很长时间从RESTful服务添加身份验证等角度学习如何自定义WCF; 我构建了一些自定义服务主机,然后添加了使用IOC容器来实际创建服务实例等的功能.
我们有iPhone/iPad应用程序以及其他一些小工具类型(技术术语!)现在使用这些(i-platform上的XML,基于浏览器的JSON),我对我们的性能和易用性非常满意可以添加新的操作等
我学会了DataContract序列化程序的所有缺陷(现在在隔离的情况下使用它们来读取/写入WCF之外的对象)以及在那个陡峭的学习曲线之后,但是现在我们拥有它们,我对它们都非常满意.
现在我们有了一系列新的Web项目,我抓住了使用MVC的机会 - 并对此印象深刻; 模特绑定,特别是真正踢屁股.
我现在正在为这些Web项目寻找类似的RESTful api(它们都是类似的站点,但不同的品牌和业务逻辑的微小变化取决于自定义需求).最初,我预计WCF上的所有这些工作都会让我们处于有利地位 - 但MVC有自己的RESTful XML/JSON开发路径,现在我已经陷入了两者之间.
如果您正在编写MVC站点,您是否会使用WCF来实现其REST API?
我将抛弃一个使用WCF的参数 - 正确编写后,它可以被隔离以作为Windows服务运行而无需Web服务器.然而,这似乎是一个绝望的情况!
更新
我应该说我现在已经使用MVC 2和3实现了3个独立的大型REST服务,并且很高兴能够使用它.我已经编写了模型绑定器来包装WCF的DataContractSerializer for XML,当然JSON支持就好了.我现在不会回去.
我从未使用过WCF,但我目前正在使用MVC2来实现REST API.
在大多数情况下,它非常适合,但存在一些差距,并且它涉及一些学习曲线.我需要使用MVCContrib来获得更好的XML支持.我使用MVC期货来支持将JSON对象发送到action方法(请参阅:http://haacked.com/archive/2010/04/15/sending-json-to-an-asp-net-mvc-action -method-argument.aspx).我还需要为此获取源代码并对其进行更改以便它可以支持XML.
我听说有一些REST框架位于.NET MVC之上,但我没有机会尝试它们.
如果你对WCF很熟悉并且上次运作良好,那么我很想坚持你所知道的.