在.NET中实现基于REST的Web服务的最佳方法是什么?

问题描述 投票:3回答:5

到目前为止,我的选择是ADO.Net数据服务,WCF REST入门套件(不确定我是否可以使用它,因为它们的EULA难以理解和混淆),ASP.NET MVC。

有很多帖子,但我想看看是否还有我缺少的框架。 如果您已经使用了上述任何选项,请发布您的经验。

我想要使​​用的方案是从SQL Server数据库保存和检索一些数据。 我正在寻找已经内置了一些基础设施的东西。 我读了其他问题,但我没有得到人们对上述选项的任何具体经验,所以想知道事情是否会随着时间而改变。

提前致谢。

澄清#1:我目前正在限制我对MS Stack的选择

asp.net-mvc wcf rest wcf-data-services
5个回答
4
投票

实际上我认为ADO.NET for Data Services(以前称为Astoria)就是你想要的。

http://msdn.microsoft.com/en-us/data/bb931106.aspx


2
投票

就v1而言,WCF肯定不是最佳选择。 它可以防止您实现ReST体系结构的许多约束。

如果你想通过http进行ReST,为什么不看看OpenRasta,它是从头开始构建的,以支持REST场景:

http://trac.caffeine-it.com/openrasta

勒布


0
投票

如果您使用的是.asmx wed服务,则可以使用ScriptService标记该类,然后在AJAX调用中请求Json以获取Json。


0
投票

如果您的网站已经在运行MVC,那么只需添加一个额外的视图并转储xml / json而不是HTML内容。 (Stack Overflow为他们的RSS提要执行此操作)

如果您想添加自定义标头,如基本Http身份验证, X-HTTP-Method-Override支持put / delete(因为浏览器管道只支持get / post),它很容易在Rest Starter Kit中完成 ,而且几乎不可能目前在WCF 3.5(可能与asp.net模块,属性设置允许httpcontext

Rest Starter Kit填补了WCF 3.5遗漏的所有空白!

REST入门套件具有ASP.NET预发布组件,如“软件已获得许可”一样。“您承担使用它的风险。它可能永远不会作为稳定版本发布” 查看许可证

为了帮助您入门, PluralSight提供了一些关于REST和REST入门套件的精彩视频教程。


-1
投票

ASP.NET MVC并不像其他东西那样。 它是一个Web开发模型,是WebForms的替代品。

至于实现基于REST的Web服务,WCF可能就是这样。 它几乎是设置一些额外的属性,配置单个xml文件及其相关问题。 就基础设施而言,WCF与任何选择一样完整,因为它具有内置的带宽和并发性,你应该决定切换传输(比如命名管道或TCP),或者希望切换到使用SOAP,它是一个微不足道的开关。 此外,内置了跟踪功能,当出现问题时可以很方便。

最后一个选项可能是Web方法。 如果您只是尝试Ajax启用一个网站,Web方法可能会做到这一点。

至于你是否缺少任何框架......如果你正在处理MS dev堆栈,不,那就好了,除了可能仍然支持的经典Web服务。

如果您正在谈论非MS语言,那么所有各种语言(Java,Python,Ruby等)都有不同的Web服务标准。 如果您不局限于MS技术,那么您应该明确这一点,因为它打开了一个选项。

编辑:这并不是说你不能用ASP.NET MVC做基于REST的无视界面。 如果只是意味着你没有内置的基础设施,并且基本上将自己滚动。 因此,无负载处理,无DDOS保护,无容错等...

© www.soinside.com 2019 - 2024. All rights reserved.