Display query results in ASP.NET
-
Monday, February 27, 2012 3:06 PM
Hello,
I want to display results of a continuous query (say 1000 events / sec) in an ASP.NET Web app. High frequencies like that would cause the app to drown (too many postbacks every second). Currently I'm using an UpdatePanel with a Timer.
I posted this question in the ASP.NET forum (here and here) and I'm not very satisfied with the answers I got, this is why I came here. The only reasonable suggestion for me seems to be SilverLight, which can work in a push manner from what I read, but that's virgin territory for me.
Any thoughts?
Thanks.
All Replies
-
Monday, February 27, 2012 5:47 PM
Could you go into more detail as to the context of the scenario you're trying to implement? Curious about:
- What's the end-user visualization (for most data visualizations, going beyond 2-3 Hz tends not to convey much more information)?
- How often would you need to update the visualization?
- Are the updates sparse or consistent?
- How many connected clients (i.e. how many distribution channels will query results need to be multiplexed into)?
In order to make this work at even 10 updates a second you're going to need a fairly rich client side experience (typically Silverlight). The crux isn't so much being able to push data (if you're on a periodic cycle of retrieving data push or pull can be equally effective), but how efficiently you can batch updates to the visualization component.
- Marked As Answer by Roman SchindlauerMicrosoft Employee Monday, April 30, 2012 6:52 AM
-
Tuesday, February 28, 2012 3:06 PM
First, I would agree with Mark ... you'll need a rich visualization client - either Silverlight or WPF/WinForms. WPF has some pretty clear advantages when it comes to visualization over WinForms and doesn't have the security restrictions of Silverlight but isn't as easily deployable.
Second, you'll need to aggregate, downsample and filter the data ... there's no two ways about it. You simply won't be able to realistically update the UI that quickly, the user wouldn't really be able to make sense of data coming down quickly you'll also want to be smart about bandwidth utilization.
If raw/pure ASP.NET is the only way to do it (and I'd really encourage you to not use ASP.NET), you'll have to either use a durable store or an output adapter that caches last known values and provides a service interface for the client to ASP.NET client to attach to. Full postbacks are VERY expensive - you'll want to use something that leverages AJAX and, possible JQuery for updates to minimize the data going back and forth.
DevBiker (aka J Sawyer)
My Blog
My Bike - Concours 14
If I answered your question, please mark as answer.
If my post was helpful, please mark as helpful.- Marked As Answer by Roman SchindlauerMicrosoft Employee Monday, April 30, 2012 6:52 AM
-
Friday, March 02, 2012 12:26 AMI've not tried this but it looks like an interesting possibility: Using SignalR To Push StreamInsight Events to Client Browsers.
DevBiker (aka J Sawyer)
My Blog
My Bike - Concours 14
If I answered your question, please mark as answer.
If my post was helpful, please mark as helpful.

