0

首先感谢您的帮助。我已经广泛研究并没有找到确定的解决方案,所以我在这里......

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

因此,正如您想象的那样,用户提供参数值并单击按钮以将数据获取到 silverlight 应用程序的自定义数据网格控件中。-我知道您可能会问自己,为什么不直接将控件添加到 silverlight 应用程序并使用 RIA 服务。无需过多详细介绍,我们需要一个更新的数据网格,我们可以将其添加到我们现有的一些 asp.net 页面中。

我不知道这样的最佳做法是什么。我进行了广泛的研究,并且考虑了几种选择,甚至进行了实验(没有成功)。

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

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

4

1 回答 1

0

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

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

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

不过有点hack。我鼓励您放弃 Silverlight 并使用 AJAX 网格。希望这可以帮助!

于 2011-07-13T00:16:39.190 回答