从silverlight应用程序访问SQL Server数据库

时间:2011-11-09 17:42:09

标签: c# asp.net sql-server silverlight

我们的ASP.NET网站允许用户执行各种查询,并根据从数据库查询的结果显示网络图(如UML图)。目前,我们正在生成一个位图并显示它。但由于我们需要支持允许用户以交互方式显示/隐藏某些块的功能,因此我们计划使用Silverlight来渲染图形。此外,我们计划在未来添加更多互动。

我有两个问题:

  1. ASP.NET应用程序是否可以将参数“发送”到silverlight应用程序。
  2. Silverlight应用程序是否可以查询SQL Server数据库。
  3. PS。如果还有比Silverlight更好的替代方案,请建议。

3 个答案:

答案 0 :(得分:3)

  1. 是的,通过在aspx标记中使用查询字符串参数来定义对象标记。
  2. 不,至少不是直接的。您可以将silverlight应用程序连接到可以查询数据库的WCF应用程序。

答案 1 :(得分:3)

您应该使用适当的分层架构,而对于SL,您实际上不能引用任何不是SL控制库的类库。

一旦您的DAL和BL层可用,您可以根据需要使用WCF服务层公开BL的部分逻辑,并在SL应用程序中使用它。请参阅我在此处建议的分层方法,该方法不仅适用于任何UI框架,而且适用于MVC,如果您实际上不使用EF,也适用。

MVC3 and Entity Framework

答案 2 :(得分:2)

简单地说: 1是的, 直接2:没有

不那么简单地说:

1:

您可以使用Initparams传递多个(字符串)参数


修改 如果您将以下内容放在aspx页面上的目标代码中:

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

在App.cs中,将以下内容添加到构造函数中:

this.Startup += this.Application_Startup;

然后在该函数中,您可以访问init params的字典。

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程序的工作原理相同。