我目前正在使用WCF实现一个Silverlight应用程序,用于客户端和服务器之间的通信。我听说在使用WCF时,我们一定要在客户端使用一些Microsoft技术,并且不能轻易地用“任何东西”来代替它--至少用WPF的默认SOAP实现。
所以我的问题是:
发布于 2009-08-11 19:33:07
我听说使用WCF我们一定会在客户端使用微软的一些技术
好吧,那你被骗了!
许多供应商和开源库都支持SOAP --它是一个W3C标准,而不是微软特有的想法。
RESTful服务的一个很好的替代方案是ASP.NET MVC,我发现了一种非常简单的方法,可以将方法直接公开为URL。
发布于 2012-01-02 15:20:25
我是维护ServiceStack的核心团队的一员,它是WCF的一个成熟的开源替代方案:现代的、代码优先的、模型驱动的、WCF替代web服务框架encouraging code and remote best-practices,用于创建简洁、干燥、high-perfomance, scalable REST web services。
它自动支持JSON、JSONP、CORS头文件以及form-urlencoded/multipart-formdata。在线演示是一个很好的开始,因为它们都使用Ajax。
此外,没有XML配置,也没有代码生成,而且您的“一次编写”C# web服务提供了所有开箱即用的JSON, XML, SOAP, JSV, CSV, HTML端点,如果需要,可以自动使用挂钩插入您自己的Content Types。
它还包括提供快速、类型化的端到端客户端/服务器通信网关的generic sync/async service clients。
这是创建一个简单web服务所需的所有代码的完整示例,该服务无需任何配置即可自动注册并在所有web data formats on pre-defined and custom REST-ful routes上可用
public class Hello : IReturn<HelloResponse>
{
public string Name { get; set; }
}
public class HelloResponse
{
public string Result { get; set; }
}
public class HelloService : Service
{
public object Get(Hello request)
{
return new HelloResponse { Result = "Hello, " + request.Name };
}
}
上面的服务可以用下面的代码行在C#中调用(不需要任何构建步骤/代码生成):
HelloResponse response = client.Get(new Hello { Name = "World!" });
response.Result.Print(); // => Hello, World
在jQuery中使用:
$.getJSON('hello/World!', function(r){
alert(r.Result);
});
发布于 2009-08-11 19:47:26
WCF是基于SOAP的(默认情况下也支持REST),可以轻松地与任何能够理解和使用SOAP的客户端进行互操作。
其中包括Java、PHP等语言和系统。
WCF是微软的实现-但这些标准都是国际标准和可互操作的标准。有关标准的任何内容都不是Mircosoft特定的。
Marc
https://stackoverflow.com/questions/1262415
复制相似问题