2009-07-14 165 views
3

我剛開始學習Silverlight和我想了解一下Silverlight應用程序的典型架構和應用程序中的工作流(我使用Silverlight 2,但任何時間很快移動到3)。Silverlight應用程序架構

在我的測試應用程序我目前僅有兩個默認的項目 - MyProject的和MyProject.Web。我熟悉MVVM模式,並使用它來組織我的代碼。但是,我無法理解客戶端上發生了什麼以及服務器上發生了什麼 - 我該如何定義它?我猜想ViewModel層在客戶端上 - 與服務器上的Model層進行通信。但他們將如何溝通?使用WCF?我的應用程序的服務器部分是否應該在單獨的項目中定義?客戶部分是否應該參考這個?

我遇到了問題時,我想設置我的模型使用LINQ to SQL中的SQL Server進行通信。 「LINQ to SQL」項目在Silverlight項目中似乎不被允許,如果我將它添加到單獨的類庫項目中,我無法從我的Silverlight項目中引用此項目; 「您只能將項目引用添加到解決方案中的其他Silverlight項目中。」

可能會開導我的體系結構和工作流程的理解,所有信息都將不勝感激。謝謝。

回答

2

Windows Communication Foundation (WCF)Silverlight到服務器的通信方式。您還可以查看目前在技術預覽中的RIA framework,它在Silverlight客戶端和WCF Web服務之間添加了一個用於數據驗證的層,允許共享驗證代碼(等等)。

Silverlight不可能直接連接到數據庫 - 您需要通過Web服務器使用WCF服務來訪問您的數據。如果您使用舊樣式ASP.NET web services,則Silverlight會在引用這些服務時將它們包裝爲類似WCF的包裝。

+0

Thx!這真的爲我澄清了概念。所以 - 我通常有一個單獨的WCF項目呢?這是否會爲我保留MVVM模式的整個模型?我是否將ViewModel放置在客戶端 - 在Silverlight項目中? 我看到WCF項目不能從Silverlight項目中引用,但我想我不需要這些項目之間的直接鏈接?所有的通信都是通過REST調用的? – stiank81 2009-07-14 21:00:44