Is there any plan for bringing the Silverlight data visualization suite to WPF? Anyone using in WinForms or WPF via an embedded browser?
Thanks,
Douglas
Microsoft does support hosting the silverlight plugin in a variety of different scenarios, see: http://msdn.microsoft.com/en-us/library/dd550717%28VS.95%29.aspx#using%5Fsilverlight%5Fin%5Fa%5Fbrowser%5Fcontrol
Can you explain more about your situation? Is the WPF application an XBAP, or a non browser hosted application. Would you want to publish the silverlight portion of the content on a website, or try to embed it with the application? The story is a bit trickier if you want complex communication between the silverlight content and the rest of the content being displayed and vice versa.
-Graham
Oh, Just as a warning, the WPF WebBrowser control will have airspace issues if you were comtemplating doing complex WPF layout around it: http://msdn.microsoft.com/en-us/library/aa970688.aspx
So be sure to consider whether the WebBrowser control fits into the overall layout strategy of the application before even getting into whether you can host your Silverlight content in it.
I've run a simple experiment here:
Here is the XAML for the wpf application:
And here is the code behind:
Notice it is using the simple expedient of finding the html page in the same directory as the WPF application, if this isn't a secure enough option for you, you could experiment with using a self hosted WCF service to host the silverlight page, but this will obviously require more code ;-)
Here is the xaml for the silverlight application:
There could be some way to suppress that warning, haven't investigated yet, but if you select "Alow Blocked Content" you will get this much better screenshot.
Now if your silverlight content is mostly self contained your story would end here, probably, but if you need to pass complex events back and forth between the silverlight content and the wpf content you will need to be a bit more crafty.
Which will probably involve:
Either way, you will be creating some sort of event proxy for moving events back and forth. Moving large amounts of data back and forth may prove to be an interesting excercise as well.
This is helpful. Thank you.
I am currently expecting I'll have to begrudgingly use the HTML bridge. But my schedule is far out enough that I was hoping I could defer development a bit and take advantage of a freshly-announced WPF Data Visualization release. : )
I've attached a sample of what I'm talking about, which also uses a self hosted WCF service in the WPF portion of the application for marshalling messages back and forth between the Silverlight content and the wpf content.
When Silverlight needs to pass a message to wpf it uses its wcf client, when WPF needs to send a message to silverlight it notifies silverlight that there is a new message available via the HTML bridge, giving it the ID, and then Silverlight pulls the message down using its WCF client. This way WCF handles all the serialization and communication management for you.
This example is using the DTO pattern to define messages that are sent back and forth. Messages just need to inherit from MessageBase, and they are automatically eligible to be sent back and forth, as long as their contents are serializable by WCF.
If you dont want to use WCF you can perform all the communication via the HTML bridge, you will just have to handle all serialization concerns yourself, etc.
A note of caution with WCF self hosted services: in Vista with UAC turned on, the user will have to be explicitly allowed to host an http service on that communication port. If you anticipate that platform, keep that in mind.
Nice! Thank you.
You are right on. Information Dashboard Design has been required reading for the Interaction Design Team here for quite a while. I am a big fan of Stephen Few, and any time I do a talk on data visualization at a conference or user group it seems to spark huge interest and feedback. There are alot of people very passionate about this topic, and we have a bunch of those guys here at Infragistics.
From an overall design perspective, there is always a trade off in the marketing aspect of color and visuals that appeal to the emotion of people and the practical real-life scenarios that are used in business everyday. We try to really balance the ***-appeal of visualization and the practical implementations. You'll always see some color, and non-gratuitous animations in our samples, but we also work very hard to make everything realistic. When I first picked up Information Dashboard Design, my favorite part was in the introduction where Few basically thanks software vendors, who consistenly do a horrible job representing date, for "igniting his passion" to write a book on showing data the right way.
I encourage you to keep us honest, and point out when we go a little overboard, but also give us a bit of leeway. I promise we'll only use a gauge if it totally makes sense ... otherwise they'll be a bullet graph, a table or just nothing :) As for all of the SIlverlight Data Visualization controls, we are shipping them in WPF as well this June, with a CTP/Beta in March. If you want some early builds, shoot me an email and I can make that happen.
I would also like to hear what else you need (I see the Sparklines request). Also feel free to email Peter Meany at pmeany@infragistics.com, he is our lead Sr. Interaction Designer on all of our Data Viz/BI stuff.
Here is a picture of some good books on this topic (you mentioned Few's already). The thin book in the picture that you can't see the name is called "The Cognitive Power of PowerPoint: Pitching Out Corrupts Within" by Tufte. It is entertaining, and the story about Louis Gerstner moving IBM away from overhead foils in their presentations to writing business plans "in longhand, using sentences to form paragraphs" is funny. It is worth the read, but you might also chalk it up to yet another PowerPoint bashing prose.
Also, make sure to check out the blogs by some of the UX team, there is a alot in there about visualization and best practices.
https://es.infragistics.com/community/blogs/b/ux
No matter what, the more you learn about data visualization, the more you end up down a path of understanding the brain, and all of the technical details of visual cognition. There is a book by Colin Ware called "Visual Thinking" that gets pretty hard core after about chapter 4 or 5, but it is a really good read that goes into more detail on various aspects of cognitive mechanics than Few does.
So, with all of that, I look forward to hearing more from you in the future! This is a great topic that we can explore for quite a long time!
Thanks
Jason
Yes I certainly have (though, I think it curious that you colorfully showcase them in ways that I suspect Steven would ... resist)---and I certainly hope that we'll soon see these in WPF.
I hope you keep moving in that direction. Sparklines would be a great next step.
It would be terrific to see a live example of public data (here's a great example) rendered with your controls in a way which adheres to all of Steve's principles of good dashboard design.
Excellent points, on the subject of Steven Few, have you checked out our implementation of his bullet graph spec? (http://es.infragistics.com/dotnet/netadvantage/silverlight/data-visualization/xam-web-bullet-graph.aspx#Overview) I know a lot of people here are enthusiastic about his work (including myself).
On the subject of Data Visualization controls, I would like to express an opinion:
It would be great to see Infragistics break away from the pack and create some DV controls which focus tightly on information communication with fewer waist pixels dedicated to sexyness. Infragistics market-leading UX emphasis makes me wonder why this hasn't already happend to a larger degree.
A good start would be to read Why Most Dashboards Fail. Follow that up with all three of Steven Few's excellent books and you'll likely never use a snazzy guage control again!
Please make it much easier for us to create outstanding dashboards such as the one showcased in the #1 spot in Quince's Dashboard section (which, incidentally, was designed by Steven).