0

我有一个与此非常相似的问题。

有一个现有的软件(数据和业务层)在服务器上运行,我想向它添加一个 Silverlight GUI 客户端。目前通过 WCF 服务进行通信,但我想改用 WCF RIA 服务。

我的架构如下所示:

Database - DAL - BL - WCF Services - Silverlight client

所有业务逻辑都在服务器上,Silverlight 客户端主要是一个数据查看器。

问题:

1)用 WCF RIA 服务替换 WCF 服务(用于客户端和服务器之间的通信)是否有意义?

2) 是否可以让 WCF 服务与 WCF RIA 服务对话?像这样:

Database - DAL - BL - WCF Services - WCF RIA Service - Silverlight client

或者

Database - DAL - BL - WCF Services - Translator - WCF RIA Service - Silverlight client

或者

Database - DAL - BL - WCF RIA Service - Silverlight client

RIA 服务的所有示例和教程似乎都使用它们直接访问数据库,但如果我想访问业务层怎么办?我将如何表示业务层上的“数据对象”?我将如何使用 RIA 服务从客户端调用服务器上的函数,例如计算某些东西?

4

1 回答 1

2

1) 我会非常倾向于使用 WCF RIA 来获得通过使您的 Silverlight 代码保持最新的工具所获得的所有好处。使用服务引用会增加 WCF 服务和 Silverlight 实现不同步的几率。

2) 我将使用 WCF RIA 服务包装 WCF 服务,如示例 #1 所示:

Database - DAL - BL - WCF Services - WCF RIA Service - Silverlight client

您的 WCF RIA DomainService 应该采用 WCF 服务的一个实例并仅包装它。

[EnableClientAccess]
public class FooDomainService : DomainService
{
    FooWcfService _fooWcfService;

    public FooDomainService(FooWcfService fooWcfService)
    {
        _fooWcfService = fooWcfService;
    }

    public IQueryable<Bar> GetBars()
    {
        return _fooWcfService.GetBars().AsQueryable();
    }
}
于 2012-07-26T14:58:00.863 回答