2011-11-09 57 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程序。


相关问题