2011-11-02 25 views
3

我开发了一个WCF应用程序,它作为数据库和我的Web应用程序之间的中间层工作。现在我的客户想要将此WCF转移到使用ServiceStack的REST将服务从WCF转换为ServiceStack框架

我在GitHub上查看过它并尝试构建演示。我使用NuGet创建了一个启动模板,因此它包含一个Hello & Todo示例。

  1. 如何将我的逻辑作为基于对象(DTO)?由于大多数函数都具有不同的参数,并将结果作为数据集返回。

  2. 如何在C#中创建客户端?我需要添加哪些参考?

  3. 当我在使用NuGet添加启动模板后,在IIS上托管示例应用程序时,我无法找到任何资源。当我需要在IIS上托管它时,是否需要执行特定设置?

回答

6

如果您还没有这样做,请通过Creating REST Services with ServiceStack演示文稿。

1)如果你看过ServiceStack的Hello World例子就说明你需要做的唯一的步骤来创建Web服务是只提供:

//1. A Request DTO 
public class Hello : IReturn<HelloResponse> { 
    public string Name { get; set; } 
} 

//2. A Response DTO 
public class HelloResponse { 
    public string Result { get; set; } 
} 

//3. The web service implementation that takes a Request DTO and returns a Response DTO 
public class HelloService : Service 
{ 
    public object Any(Hello request) 
    { 
     return new HelloResponse { Result = "Hello, " + request.Name }; 
    } 
} 

上面的例子显示了所有需要的代码创建您好 Web服务。 您应该能够从WCF方法中重用大量现有类型和逻辑,并将其复制到Any()方法中。

2)ServiceStack的好处之一是你不需要添加一个ServiceReference,即你可以重复使用相同的通用服务客户端和你的DTOs为所有的Web服务。 e.g:

//Using JSON: 
IServiceClient client = new JsonServiceClient("http://localhost/path/to/servicestack"); 

//Using XML: 
IServiceClient client = new XmlServiceClient("http://localhost/path/to/servicestack"); 

var response = client.Send(new Hello { Name = "Arun" }); 
Console.WriteLine("Received: " + response.Result); 

/元页也有你的web服务WSDL在那里你可以创建你应该想生成客户端提供服务的链接。然而,这不是推荐的方法,因为它需要更多的摩擦,然后只使用现有的DTO。

3)ServiceStack Web服务已经是一个ASP.NET应用程序,即ServiceStack只是一组IHttpHandler,您可以将它配置为在您的Web应用程序Web中添加a Web.config mapping以在正常的ASP.NET或MVC Web应用程序内部运行。配置。

基本上,您可以将ServiceStack Web服务视为普通的ASP.NET Web应用程序,实际上Hello World Tutorial向您展示了如何通过创建空的ASP.NET应用程序来执行此操作。

您可能也有兴趣了解The Starter Templates示例项目,它向您展示了配置ServiceStack以运行在各种不同的托管选项(如ASP.NET/Windows服务/控制台应用程序等)所需的设置的最低要求。

+0

这是一个很好的答案和伟大的框架,你们已经建立,一个查询是如果我需要从另一个Web应用程序消费它我需要添加RestIntro.ServiceModel引用,对吧?以及如何将该响应转换为json格式? –

+0

我需要做的是如何在不依赖于ServiceModel(这里是客户类)的情况下使用此服务? –

+0

@ArunRana您用于开发Web服务的相同Dtos可用于所有ServiceStack的序列化程序/格式,这是JsonServiceClient为您所做的。 – mythz