2012-07-24 128 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

相關問題