Review: NetAdvantage for WPF
This control package is for anybody who have been wondering if WPF is ready for the enterprise. WPF has been heavily criticise in the past of being only "eye-candy" but NetAdvantaged has taken it to the next level by adding 2 components sourly missing in WPF: Charts and Data Grids. NetAdvantage is created by Infragistics. I have no confirmed price yet but the product has RTM'ed. Here are the 2 main controls I liked
Control: xamChart
Both xamChart and xamDataGrid is used to visualize data. The centre of both components are their extended data binding capabilities! Let's have a look at how xamChart works (Think Excel on steroids!)
How it works
To create basic charts is very easy
<igCA:XamChart>
<igCA:XamChart.Series>
<igCA:Series Fill="#FFD21717">
<igCA:Series.DataPoints>
<igCA:DataPoint Value="5" />
<igCA:DataPoint Value="7" />
<igCA:DataPoint Value="4" />
<igCA:DataPoint Value="3" />
<igCA:DataPoint Value="7" />
</igCA:Series.DataPoints>
</igCA:Series>
</igCA:XamChart.Series>
</igCA:XamChart>
|
Create a XamChart and add a Series. Each Series can contain multiple DataPoint's.
The data binding is just as easy, all that is required is that each Series sets it DataSource and DataMapping. I will quickly demo how to bind to a XML data store.
I created a very simple collection of employees (Names and ages) and filled it with some data. First step is to add a provider
<XmlDataProvider x:Key="EmployeeData" Source="C:\Employees.xml" /> |
Next, modify the chart a little bit...
<igCA:XamChart>
<igCA:XamChart.Series>
<igCA:Series Label="Age" ChartType="Column" DataSource="{Binding Source={StaticResource EmployeeData}, XPath=/Employees}" DataMapping="Value=Age; Label=Name " />
</igCA:XamChart.Series>
</igCA:XamChart> |
Easy!
The DataSource use normal binding and the DataMapping explains how to use the data provided!
This also comes with a full selection of 2D and 3D charts (IE. Line, Pie, Bubble, Candlestick, Spine, Area, etc).
What I didn't like
The data binding can get very confusing very quickly but that is to be expected!
Can I get it for free
I spend the last week writing my own stock chart for my Lab49 entry and I have to say if I had the choice I would rather buy it! It is very complicated!!! There are some resources available thou:
Simple Line Chart with Silverlight 1.1, part 1
Live Updating Line Graph in WPF
A WPF-powered 3D graphing library
Also note that Infragistics isn't the only company making chart controls... ChartFX and Syncfusion just to name a few!
Control: xamDataGrid
The xamDataGrid is a highly versatile, powerfull presentation control that can be used to create polished reports, tables, ledgers, product listings and much more with only 1 line of code!
How it works
Using the same XML data source as the chart, this is all that is required to create a basic data grid
<igDP:XamDataGrid DataSource="{Binding Source={StaticResource EmployeeData}, XPath=/Employees/Employee}"/> |
WOW, is that all? What do I get for this 1 line of code? Well, everything (Data sorting, grouping, editing, resizing, etc)
It's also easy to setup record adding, alternating row highlighting, hierarchical data binding, etc!
What I didn't like
This is a great control, easy to use, stylish themes, great binding support!
Can I get it for free
Wait for it... IT IS FREE! xamDataGrid ships with NetAdvantage for WPF 2007 vol 1 Express and it is available for free!
Xceed also has a Data Grid available for free. I will hopefully review this control soon. If you want to use it thou, Sacha has a nice CodeProject article on how to use it available here.
Vertigo is also a design company making big WPF waves. Thy developed the Family.Show reference application where thy customized the standard ListView to add sorting and editing. Here is a detailed document on how thy did it.
What else is available
NetAdvantage is also undoubtedly the king of carousels! Thy have a xamCarouselPanel (Like the normal stack panel, wrap panel, etc). Then thy take it a step further with xamCarouselListBox (Adding multi-item binding and selection support). Then lastly thy go for broke by creating the xamDataCarousel (Flat and hierarchical data).
Where can I get it
http://www.infragistics.com/dotnet/netadvantage/wpf.aspx
Final thoughts
To just review 2 of their controls don't do them justice. If you need to see more examples have a look at their exemplar application, Tangerine. I truly enjoyed reviewing this package. It is well designed, has excellent help documentation and is extremely usefully!
Previous reviews
Blendables Essentials Mix v.1.0
[EDIT] Tim Sneath also has a review about controls available here