WPF vs Silverlight

Both WPF and Silverlight use XAML (Extensible Application Markup Language) under the covers.

Runs as Windows application or as web “browser application” (called XBAP, for “XAML Browser Application”). Note that XBAPs run only in Internet Explorer with .NET 3.0 and in both Internet Explorer and Firefox with .NET 3.5.
Runs on Windows machines only (Windows XP, Windows Server 2003, Windows Vista, and Windows Server 2008)
Richest functionality, including 3D graphics

Ships independently
Runs in web browsers only (Internet Explorer, Firefox, Safari)
Runs on Windows or Mac operating systems (also on Linux via Moonlight, which is an open source implementation of Silverlight based on Mono)
Functionality is a subset of WPF’s feature set

When should you use each? it depends!

WPF is a more mature technology and was designed with a richer feature set. It also has the advantage of being able to run in a browser or as an installed Windows-Form-type app.

Silverlight has a broader reach. You can access Silverlight from many operating systems and web browsers.

The most important reason to choose one over the other should be based on the intended audience for the application. For example, if a corporation is designing an application for internal use only and every employee has Windows XP as the company standard OS, then go with WPF to leverage the richer feature set. If a corporation is designing an external-facing website, then Silverlight is the better choice because potential customers can access the website from a variety of different operating systems and browsers.

WPF vs Silverlight

WinForms and WPF interop issue

I had to add  Windows Forms chart control to a WPF app. I hosted it using WindowsFormsHost. Things worked fine until I noticed that there is no scroll bar when I add several controls.

First, I tried to add WPF scrollbar to parent panel of WindowsFormsHost but it behaved weirdly. The scrolled WinForms controls goes out of window bound to other windows! And it is drawn on top other windows. In other words, when scrolled, it floated freely as if there is no window. 

Later, I tried to add a WinForms panel (any type of panel will work) to WindowsFormsHost and add scroll bar to the WinForms panel. It worked! Yeah!

I realized that if you need to scroll WinForms controls, you need to use WinForms scroll bar.

Note that WPF scroll bar is outside of WindowsFormsHost and the WinForms control is inside of WindowsFormsHost.  Using WPF scroll bar to scroll WinForms control is nothing short of begging for trouble.

WinForms and WPF interop issue

First look at SyncFusion WPF Chart library

I had a chance to evaluate SyncFusion in 2008. Although it has the richest feature set among WPF charts I evaluated, my first impression was poor documentation. The help file has almost nothing. I take me awhile to get zoom feature to work.  In fact, I had to go to support forum to get help.

Comparing to Infragistics chart, SyncFusion look is not as good. But it does have better feature set. Context menu and zoom is definitely a plus. In fact, it is the only WPF chart component offered zooming feature at the time I evaluated.

Royalty-free licensing is also a plus.

First look at SyncFusion WPF Chart library

First look at Infragistics WPF chart library

I evaluated Infragistics WPF chart library around August 2008. At the time, it looks  very good, polish, easy to use.

I was able to write some prototypes static chart with databinding to database with ease. I was tasked to write live chart and that it offers time-based feature, scatter line chart, and a live stock chart sample make my life a lot easier.

Unfortunately, it has poor feature set comparative to SyncFusion. No zoom is a big turnoff. No context menu, no scale brake…

First look at Infragistics WPF chart library

.NET 3rd party chart evaluation/review

I had a chance to work on chart component (2008). I went through a lot of 3rd party products. I not only researched using their websites but also downloaded the software package, wrote a prototype for each to form opinion about it…
The evaluation took longer than I expect . I think it’s worth it because you don’t want to commit a toolkit and later find out its shortcoming.
I considered both WinForm charts and WPF charts. Eventually, I narrowed down to 4 companies: Dundas, Nevron, Infragistics, SyncFusion… Leave comment if you want to see review of other products such as ComponentOne, DevComponents… I also a comparison spreadsheet. If I found it, I’ll post it.
Here are my first look at those charts:
We decided on WinForm chart because WPF charts currently offering is not mature enough.
Dundas chart wins out as it is very easy to use and has comprehensive feature set.
But later I found out that the feature we need is only available in Enterprise edition. Enterprise edition license is not royalty-free license; making it prohibitively expensive. Management said no.
So we decided on Nevron.
.NET 3rd party chart evaluation/review