WCF的RESTful框架替代方案

时间:2009-09-21 07:05:14

标签: wcf rest frameworks .net

寻找WCF REST启动工具包的替代方案,理想情况是OSS框架。

任何人都有名单?

干杯

奥利

4 个答案:

答案 0 :(得分:8)

OpenRASTA是最成熟的

答案 1 :(得分:4)

在生成REST XML和JSON提要时,ASP.NET MVC是一个很好的选择。

答案 2 :(得分:2)

要在.net中构建休眠体系结构,您可以使用GenericHandlers。您可以创建一个GenericHandler,它将接收HTTP消息(POST,GET或..)并返回您指定的内容类型的消息。

例如,我在url上创建了一个通用处理程序:

http://site/getpeople.ashx?gender=female

并使用parmeter gender = female调用它,如上面的处理程序将返回以下

<people>

<person>...</person>
...
<people>

内容类型为text / xml。

这是在.NET中实现REST Web服务的最简单方法

答案 3 :(得分:2)

我还提供ServiceStack,一个现代的,代码优先,DTO驱动的WCF替代Web服务框架,鼓励代码和远程最佳实践,以创建干,高性能,可扩展的REST Web服务。

没有XML配置或代码生成,并且您可以自动在所有JSON,XML,SOAP,JSV,CSV,HTML端点上启用一个干净的C#Web服务。它包括通用同步/异步服务客户端,提供端到端的快速,类型化的客户端/服务器通信网关。

它还包括generic sync/async service clients端到端提供快速,类型化的客户端/服务器通信网关。

这是创建简单Web服务所需的所有代码的完整示例,它自动没有任何配置,已在所有web data formats on pre-defined and custom REST-ful routes上注册并可用:

public class Hello {
    public string Name { get; set; }
}

public class HelloResponse {
    public string Result { get; set; }
}

public class HelloService : IService<Hello> {
    public object Execute(Hello request) {
        return new HelloResponse { Result = "Hello, " + request.Name };
    }
}

可以在C#中调用以上服务(没有任何构建步骤/代码),如下所示:

var response = client.Send<HelloResponse>(new Hello { Name = "World!" });
Console.WriteLine(response.Result); // => Hello, World

在jQuery中:

$.getJSON('hello/World!', function(r){ 
    alert(r.Result); 
});