2012-07-24 140 views
0

我有一个与this one非常相似的问题。Silverlight客户端和业务逻辑之间的WCF Ria服务?

有一个现有的软件(数据&业务层)的服务器上运行,我想Silverlight的GUI客户端添加到它。通信现在通过WCF服务工作,但我想使用WCF RIA服务。

我的架构是这样的:

Database - DAL - BL - WCF Services - Silverlight client

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

问题:

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

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服务从客户端调用服务器上的函数,例如计算一些东西?

+0

您是否有能力修改WCF服务使用的对象?您可能需要添加/更改/删除属性才能满足WCF RIA。此外,Silverlight客户端是否只读? – 2012-07-25 15:26:49

+0

对象由另一个团队管理,他们必须进行更改,但这是可能的。客户端不是只读的,会有像“发送一个int到服务器”这样的小操作。 – Phasma 2012-07-26 14:20:53

回答

2

1)我想倚重倾向于使用WCF RIA所有你的工具保持您的Silverlight代码为最新获得的好处。使用服务引用增加了WCF服务和Silverlight实现不同步的几率。

2)我想包与WCF RIA Services中的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(); 
    } 
} 
+0

感谢Ed,我认为这是我为初学者所做的,然后再与服务器团队合作,将所有内容切换到WCF RIA。 – Phasma 2012-07-26 15:50:10

相关问题