需要有关通过ASP.NET / WCF将数据传输到Silverlight应用程序的指导

时间:2011-07-12 22:48:52

标签: asp.net silverlight wcf design-patterns pollingduplexhttpbinding

首先感谢您的帮助。我看了很多,并没有找到一个确定的解决方案,所以我在这里......

基本上我正在开发一个asp.net(4.0)应用程序。一个webform代表一个报告,分为两部分: - 一个div,其作用类似于控制面板,其中包含为查询提供参数的文本框,组合框,日历等,以及用于获取数据的按钮。 - 持有silverlight控制主机的div。 silverlight应用程序仅包含自定义数据网格控件。

因此,正如您所想,用户提供参数值并单击按钮以将数据导入silverlight应用程序的自定义数据网格控件。 - 我知道你可能会问自己,为什么我不把控件添加到silverlight应用程序并使用RIA服务。在没有详细介绍的情况下,我们需要一个更新的数据网格,我们可以将其打入现有的一些asp.net页面。

我不知道这样的事情的最佳做法是什么。我看了很多,我考虑了几个选项,甚至让我的脚湿了试验(没有成功)。

我认为我想要的是拥有一个仅向页面上的silverlight客户端发送数据的wcf服务。 让我明确一点,我不需要请求/回复消息交换模式,因为silverlight客户端不会发出任何请求。 在我完成这个任务的“任务”中,我找到了关于双工消息传递的示例/教程,如果我可以将asp页面设置为服务的客户端并将silverlight应用程序设置为同一服务的客户端,我认为可能会很好。 使用单击按钮,asp页面的服务引用调用服务获取数据,然后将数据发送到silverlight客户端。 我所关注的一个问题是,我发现的所有教程都会将消息发送给所有客户端,那么如果有两个人同时访问该网站呢?它会更新他们的两个应用程序吗?我如何定位合适的客户?

所以我的问题是,任何人都可以提供任何建议,链接或其他资源来解决这种情况吗?

1 个答案:

答案 0 :(得分:0)

首先,我认为你不需要Silverlight。有很多很棒的用户界面控件,例如Telerik RadGrid,您可以放入现有的应用程序,并在一两个小时内启动并运行。

话虽如此,如果你真的想让这个工作,你需要的是pub / sub,它既可以在浏览器中运行,也可以在Silverlight中运行。看看PubNub。您每天可以免费获得5,000条消息,并且可以使用简单的API在几乎任何客户端(电话,Silverlight,浏览器等)中运行。

基本上,您的Silverlight客户端会订阅一个“频道”,以便在过滤器参数发生变化时收到通知,您的表单会通过JavaScript或服务器端向此频道发布消息,告知订阅者(在您的情况下为1)更改了过滤器值。当Silverlight客户端收到通知时,它将通过WCF发出数据请求。

但是,有点黑客。我鼓励你放弃Silverlight并使用AJAX网格。希望这有帮助!