2011-11-22 46 views
1

我是Silverlight的新手。我們正在將我們的項目遷移到Silverlight。我們只是改變我們的表示層。 (ASP.NET WebForms站點到Silverlight Web應用程序)。所以我們其他具有業務&數據訪問層的類庫將保持原樣。從Silverlight添加項目引用到Business&Data Access項目

首先,我在我的解決方案中添加了Silverlight Web應用程序。它創建了2個項目:PM_ToolPm_Tool.Web。現在我需要添加商業和數據訪問層的項目引用,因爲我需要在我的MainPage.xaml.cs中訪問它們。

但我不能添加引用Pm_Tool - 我得到以下信息:

您可以參考項目只會增加溶液中的其它的Silverlight項目。

然後我添加了項目引用Pm_Tool.Web,但我無法訪問MainPage中的業務層對象。

任何人都可以幫助我如何進一步?

回答

0

Silverlight應用程序只能引用其他Silverlight項目。這僅僅是因爲Silverlight使用了.NET框架的輕量版本;如果你可以參考'完整的'.NET項目,那麼它將被要求支持整個框架。微軟已經做出了限制功能的設計決定 - 大概這是爲了減少Silverlight的運行時間佔用空間。儘管如此,您的代碼的大部分仍然可以在Silverlight中運行。您應該創建「Silverlight類庫」項目並將您的類包含到這些項目中。您將很快看到哪些(如果有的話)類正在使用Silverlight不支持的框架部分。從那裏實施解決方法。

當然全部您的數據訪問和服務器端代碼必須保留在您的「Web」項目中。 Silverlight實現了一個正確的客戶端 - 服務器模型,並且不允許您像ASP.NET WebForms那樣「跨越邊界」。您的Silverlight應用程序僅在瀏覽器中運行 - 任何需要在服務器上發生的事情都必須發生在「Web」項目中。您的Silverlight應用程序通過WCF(或WebClient等)從「Web」項目發佈和獲取信息。

除非您有精心設計的ASP.NET解決方案,否則我預計您的轉換不會像'只是改變我們的表示層'那麼簡單。

0

您只能將參考添加到其他silverlight組件。你不允許在「普通」窗口程序集中添加參考--asp.net或WPF,或winforms(等等),但是,你可以將silveright程序集的參考添加到其他項目。

您將不得不製作想要添加的程序集的silverlight版本。其主要原因是安全模型。

現在,您可能遇到的問題是,因爲silverlight實際上是WPF的一個子集,所以您希望使用的許多類都不可用。然而,有辦法解決這個問題 - 使用web服務等。

相關問題