2011-11-09 51 views
4

我們的ASP.NET網站允許用戶執行各種查詢,並基於從數據庫查詢的結果顯示網絡圖(如UML圖)。目前,我們正在生成一個位圖並顯示它。但是由於我們需要支持一項功能以允許用戶以交互方式顯示/隱藏某些塊,因此我們計劃使用Silverlight來渲染圖形。此外,我們計劃在未來增加更多互動。從Silverlight應用程序訪問SQL Server數據庫

我有兩個問題:

  1. 是否有可能一個ASP.NET應用程序「發送」參數Silverlight應用程序。
  2. Silverlight應用程序是否可以查詢SQL Server數據庫。

PS。如果還有其他比Silverlight更好的選擇,請提出建議。

回答

3

您應該使用正確的分層架構,而通常使用SL,實際上,您不能引用任何不是SL控制庫的類庫。

一旦你有你的DAL和你的BL層可用,你可以根據需要將BL的部分邏輯暴露給WCF服務層,並在SL應用程序中使用它。看到我在這裏提出的分層方法,它不僅適用於任何UI框架,而且適用於如果您實際上不使用EF。

MVC3 and Entity Framework

3
  1. 是的,通過在您定義對象標籤的aspx標記中使用查詢字符串參數。
  2. 不,至少不是直接。您可以將Silverlight應用程序連接到可以查詢數據庫的WCF應用程序。
+0

所以,它看起來像Silverlight是不是要走的路。有什麼建議麼? – devnull

+0

您可以將Silverlight用於UI,但您需要一個WCF層來進行數據庫交互。 – jrummell

2

簡單地說: 1對, 2直接:沒有

並非如此簡單地說:

1:

可以使用initParams在傳遞多個(string)參數


編輯: 如果你把你的目標代碼下面你的aspx頁面上:

<param name="InitParams" value="keyOne=valueOne, keyTwo=valueTwo" /> 

而在你App.cs添加以下的構造器:

this.Startup += this.Application_Startup; 

然後在功能,您可以獲取init參數的字典。

private void Application_Startup(object sender, StartupEventArgs e) 
{ 
    foreach (var data in e.InitParams) 
    { 
     if(data.Key.Equals("keyOne")) 
     { 
      //data.Value now equals valueOne 
     } 
    } 
} 

2: 您可以使用WCF服務與服務器進行通信,併發送和接收數據(如數據庫中的數據)


編輯:

this link中解釋瞭如何託管和使用WCF服務(甚至在IIS中託管被解釋)消耗部分工作相同對於WPF,Silverlight和任何其他.NET程序。


相關問題