我们的ASP.NET网站允许用户执行各种查询,并根据从数据库查询的结果显示网络图(如UML图)。目前,我们正在生成一个位图并显示它。但由于我们需要支持允许用户以交互方式显示/隐藏某些块的功能,因此我们计划使用Silverlight来渲染图形。此外,我们计划在未来添加更多互动。
我有两个问题:
PS。如果还有比Silverlight更好的替代方案,请建议。
答案 0 :(得分:3)
答案 1 :(得分:3)
您应该使用适当的分层架构,而对于SL,您实际上不能引用任何不是SL控制库的类库。
一旦您的DAL和BL层可用,您可以根据需要使用WCF服务层公开BL的部分逻辑,并在SL应用程序中使用它。请参阅我在此处建议的分层方法,该方法不仅适用于任何UI框架,而且适用于MVC,如果您实际上不使用EF,也适用。
答案 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程序的工作原理相同。