This Blog


Favorite Posts


May 2009 - Posts

  • Sneak peek: Regression lines in XtraCharts v2009 vol 2 (ASP.NET / WinForms)

    One of a series of posts on the new functionality that'll appear in DXperience v2009 vol 2. This is all pre-beta stuff, we're probably something like a month from beta.

    In this post, we'll look at the new regression line support that coming up in the next major release of XtraCharts.

    If you do any kind of statistical analysis of some data, you would at some point plot the data on a chart and try and determine whether the data suggests some kind of simple function between the variables of the data (in general, there are one or more independent variables, and a single dependent variable whose values depend on the values of the other variables).

    The simplest function to look for is a line. You plot the data points such that the X-axis is the independent variable and the Y-axis represents the dependant variable, and if the points are roughly collinear, odds are that there is a linear relationship between the variables (that is, the variables are related by an equation y = a + bx, for some a and b).

    Regressionline in XtraCharts 

    Linear regression analysis involves determining the underlying equation through a method called least squares. With this method, we minimize the error terms (if you like, how far away each data point is from the underlying linear function) by minimizing the sum of the squares of the errors. (The squaring of the terms removes the problem of dealing with negative error terms.) To calculate the equation of the line using the least squares method is relatively simple; indeed many calculators provide such a function.

    XtraCharts now provides this linear regression and will plot the line on a point chart, as shown. You can also determine the equation of the line.

  • Sneak peek: Scatter line charts in XtraCharts v2009 vol 2 (ASP.NET / WinForms)

    One of a series of posts on the new functionality that'll appear in DXperience v2009 vol 2. This is all pre-beta stuff, we're probably something like a month from beta.

    This time, we'll look at the new scatter line charts in XtraCharts, again available in both WinForms and ASP.NET. The name, at least in relation to XtraCharts, is perhaps a bit of a misnomer, since scatter line charts are merely scatter charts with lines between the points. However XtraCharts doesn't contain any of these so-called scatter charts, instead, it calls them point charts, which are the same thing.

    XtraCharts does have line charts already, so what's the difference between those and this new-fangled type?

    The difference is subtle: line charts use an X-axis which is a category or perhaps a date range. The important thing is that the X-axis has no numerical information for the chart, it's simply a set of values. The category information from the series is spread evenly across the X-axis. Now, if your X-axis data is increasing with equal intervals between the values, it can look as if the chart is assigning meaning to the X-axis values, but in reality it's not.

    A scatter chart (or, in XtraCharts, a point chart; and Excel sometimes refers to them as XY charts) is your common or garden mathematical graph, like we all drew at school. You want to graph y = x2? No problem, supply a series of (x, y) coordinates, and XtraCharts will plot them as you'd expect, with full meaning to the x values. You don't have to have all your x values at equal intervals, for example. A scatter line graph just draws lines in between the points on such an XY chart.

    Here's an interesting graph: the Cartesian Folium, drawn as a scatter line chart in XtraCharts:

    Cartesian Folium as scatter line from XtraCharts 

    I tell you the charting devs we have have some hidden talents and knowledge. I'd never heard of this particular graph or function before and I've got a degree in mathematics. The equation of it is

    x3 - 3axy + y3 = 0

    for some constant a. René Descartes was the first to look at it and discuss it (hence the name), but thought the loop repeated in all four quadrants (hence its other name: fleur de jasmin, a jasmin flower having 4 petals).

    Anyway, a scatter line chart in XtraCharts is merely a standard graph of a function from mathematics, physics, or engineering.

  • Sneak peek: Funnel charts in XtraCharts v2009 vol 2 (ASP.NET / WinForms)

    One of a series of posts on the new functionality that'll appear in DXperience v2009 vol 2. This is all pre-beta stuff, we're probably something like a month from beta.

    This time, let's look at the new funnel chart in XtraCharts, for both ASP.NET and WinForms. A funnel chart is a weird beast indeed, one of those charts that has a quick visual hit resulting in a rapid understanding of the data, but one that is difficult to estimate the actual values. I'd have to say that labels are required for this type of chart, because we all have difficultly guessing the area of a shape.

    (This is just like bubble charts, by the way, where the "third value" of a chart point is the area of a circle at that point. The chart is instantly understandable, yet we have difficultly in assessing the area of the circle at a single point, or even the ratio of the areas of two points on the chart. We should show the values as labels.)


    Here's a simple funnel chart. Unlike a pie chart, for example, the numbers are not supposed to add up to 100% or anything like that. It's supposed to show the decreasing values about some information set as we add more and more specificity to the data we're sampling. If you like we're showing the trends in a set of data from some process or workflow.

    So, for instance, in this graph, we looking at the visitors to a fictitious web site that operates in the same way as ours. So the top band is the total number of visitors. From that set of data, we count the number of visitors who downloaded a trial and get the second band. Obviously this is less than the number in the first band, so we show this intuitively by the sloping lines (the start of the funnel shape, if you like). Of those visitors, a certain number used the support services of the web site — but not all — giving us the third band. Of these, a lesser number bought the product (fourth band) and of these, a smaller number eventually renewed (fifth band). And we're done.

    Notice how this set of data produced a pretty good funnel (OK, we cheated on the numbers to make it so), but other data might produce a funnel nearer in shape to a vertical column, whereas other data might be more like a martini glass.

    Nevertheless the band are all equal in height, in order to give the end-user a better chance to estimate the data values — in essence the average width of the band. But, it's still better to show the labels (we provide several locations for the labels: right (as shown), left, center, or left/right as a column). The data above is shown in absolute units, but you can also show it as percentages, which for such a chart may be a better alternative.

  • What's New in Help

    The help documentation team has been busy implementing a new feature: What's New in Help. It's an online resource for discovering what has newly been published in the help system for our controls and frameworks.

    For each major and minor release, we will flag the new content for all DXperience products and it will get published as a new page when that version is released. The What's New in Help will contain all new classes and custom documents, as well as any updated documents. Also, each item in this list will be a link to the corresponding topic in our online documentation.

    The first release to get this feature is v2009.1.4, but from now on, all minor (and major releases) will get their own page. This is an ideal way for you to get the skinny on the new features and functionality without having to wade through all the help.


  • Republishing "Message from the CTO" from the DevExpress Newsletter

    I was having a chat with Rachel, our advocate of community outreach, and she proposed that I republish my "Message from the CTO" section from each newsletter here on my blog so that you, our customers, can comment on my thoughts. At present,the only way you can comment is by emailing newsletter@devexpress.com. I eventually get to read it, but Rachel's idea is much better. Plus, it's all public.

    Here's what I'll do: as soon as I get my copy of the newsletter (yes, I get all the emails that a "normal" customer gets, but three times over for each of my three personas in the system), I'll post the text of the message here. If you want to comment about the topic, please do.

    Seems a bit late to do this for the first one, but here's my piece from newsletter 2:

    A big conference like TechEd (held last week in LA) is a great time to meet up with customers and those people you'd like to make into customers. The very fact that you are face to face engenders good conversation. Questions and issues are naturally and easily resolved. Trust and civility are understood.

    The same ease and spontaneity is much more difficult to achieve with email or forum posts. For a start, there's the disconnectedness: you send off this message into the ether and await an answer, never knowing if it even reaches the recipient. Then there's the ambiguity of the prose: does it read harshly or pejoratively when you had no intent in so being? (After all, that's what emoticons were invented for, right? To remove the jarring notes from textual conversations by simulating human expressions.)

    It's hard to do though: reading your own emails as a stranger to confirm your natural civility. It's something I've started doing, care to join me?

    Now the very first comment I received about this particular newsletter was this:

    Sorry, but the photo is really disturbing and creepy to have in the newsletter e-mail. As soon as I can figure out how to turn the images off I may read it.

    Which kind of goes against the theme of the message...

    What do you think? (About the topic, not necessarily about that reply.)

  • Fun half hour: Using ASP.NET tree list in unbound mode

    This started out as a customer email/phone question and instead of just passing it off to support, I thought I'd take a quick half hour off and solve it for myself. Without even asking Mehul, no less. Oh all right, I admit it, I wanted to do some programming for a change.

    The scenario: Web site. ASPxTreeList. Unbound mode. At least one column per node to show some data.

    Our unbound demo for the tree list was a good start, but it didn't show that required extra column. No matter, I just used it as a basis for my quick solution.

    First off I dropped an ASPxTreeList onto a new website and renamed it to treeList. I then opened up the smart tag and selected Columns.


    Here I added two columns, the first's Caption property set to Nodes, the second, Size. (The image above shows the result of this change.)

    I set the FieldName property for the first column to Name and the second to Size.


    Now time for some code. I warn you, it's simple stuff indeed. I didn't set up any special classes to hold my data, I just used the node class from the tree list (TreeListNode). My example shows a simple hierarchy from our community site. So there's Forums and Blogs, and within Forums, there are some major categories like "general" and "dotnet_products". The node leaves will have a completely made up size value.

    public partial class _Default : System.Web.UI.Page {
      private TreeListNode CreateNode(object key, string name, int size, TreeListNode parentNode) {
        TreeListNode node = treeList.AppendNode(key, parentNode);
        node["Name"] = name;
        node["Size"] = size;
        return node;
      private void CreateNodes() {
        TreeListNode forums = CreateNode(1000, "Forums", 0, null);
        forums.Expanded = true;
        TreeListNode general = CreateNode(1100, "general", 0, forums);
        CreateNode(1101, "discussion", 1234, general);
        CreateNode(1102, "ordering", 567, general);
        CreateNode(1103, "test", 89, general);
        TreeListNode dotNetProducts = CreateNode(1200, "dotnet_products", 0, forums);
        CreateNode(1201, "aspxtreelist", 147, dotNetProducts);
        CreateNode(1202, "aspxgridview", 258, dotNetProducts);
        TreeListNode blogs = CreateNode(200, "Blogs", 0, null);
        CreateNode(201, "ctodx", 345, blogs);
        CreateNode(202, "mehulharry", 123, blogs);
      protected void Page_Load(object sender, EventArgs e) {

    So, on a page load, I create the nodes structure afresh (of course, I could save it off somewhere if I wanted to and reuse the saved version). The CreateNodes method is somewhat trivial and sets up the hierarchy with lots of calls to CreateNode. This does the actual work of creating a node, adding it to the tree list instance, and then setting the fields Name and Size. As you can deduce from just this code, the node implements a dictionary keyed off the field name to store its "data". Here are the lines that set the "fields" of the node data.

        node["Name"] = name;
        node["Size"] = size;

    Notice that they are the same identifiers that I used for the FieldName property in the columns of the tree list.

    Simple. After that, it's just a case of compiling and running with this result, after expanding all the nodes:

    unbound asp.net tree list

    Oh well, enough fun, back to my real work.

  • Microsoft TechEd 2009: Day 4

    As with all final days in an exhibit hall, TechEd day 4 was very quiet. Most of the attendees who wanted to speak with us had already spoken with us in the previous three days, and so it was a time for meeting up and chatting with friends popping by the booth. At about 2:15pm we drew for the Segway giveaways: many congratulations to the two winners.

    The hours were curtailed as well: at 2:45pm, after not quite 4 hours, the attendees were chivvied out and the curtains were drawn and the carpet rolled up. Our booth was quickly stripped of audio and visual electronica and we packed our U-Haul with the remaining t-shirts and caps. At that point is was back to the hotel for a shower and a relaxing (and celebratory) cocktail leaving the disassembly of the booth itself to the experts.

    I'd like to take this opportunity to thank everyone who came to our booth and said hello. For all the people who weren't customers, remember the URL http://www.devexpress.com/eval for your evaluation version, and for all the customers, thanks for being customers!

    Next year, TechEd will be held in New Orleans, June 7-11. See you there.

  • DevExpress wins TWO "Best of TechEd 2009" awards

    Last night was the ceremony to announce the winners of "Best of TechEd 2009" awards, provided by Windows IT Pro magazine. We were finalists for a category called "Business Intelligence" and way back on Monday, about half an hour into the whole exhibitor week, I was interviewed by one of the judges on our offerings in the field of business intelligence and what we provide for knowledge workers.

    Best of teched awards She quickly disabused me of spouting "marketese" (rats! It's getting so I can do that in my sleep) and we had an enjoyable conversation about what we provide for developers in the area of analytics so that they can incorporate it into their applications. It should come as no surprise if you have been reading my daily TechEd diary to learn that this includes the pivot grids for WinForms and ASP.NET, our charting product XtraCharts and its ability to graph the current view of a pivot grid, and our printing/reporting product XtraPrinting Library and XtraReports to produce printouts on paper, as PDF, XLS, etc. This bundle of products, easily obtainable as part of DXperience Enterprise, gives our customers the ability to write analytical software very simply.

    Well, to cut a long story short, DevExpress won the Best of TechEd 2009 Business Intelligence award for our analytics products.

    We were ecstatic at that but there was more to come. All of the finalists are automatically entered into the Attendees' Pick award, and it's up to the attendees themselves to vote for their product of the year.

    I'm sure you've guessed it by now, but DevExpress also won the Best of TechEd 2009 Attendees' Pick award for our analytics products.

    This is absolutely marvelous news and we are overjoyed with the result. More than that, we're all walking around with very goofy smiles on our faces this morning, so do come on over to the booth to see Smile.

    In fact, looking back on my notes, that makes three years in a row that we've won the Best of TechEd Attendees' Pick award. We won in 2007 with DXperience ASP.NET, in 2008 with DXperience, and now in 2009 with our business intelligence products. Many thanks to every attendee who voted for us this year (and in previous years), you are the best.

    I'd like to thank all of our customers who voted for our products, to all of our customers who have bought licenses and believe in the controls and libraries we make, to all those who evangelize them within their organization and at user groups and conferences. We are very grateful indeed. It all shows that we continue to develop the controls and frameworks and tools that developers need, enjoy using, and want to buy.

  • Microsoft TechEd 2009: Day 3

    Day 3, for some unknown reason, was fairly intensive in the sense that we were doing a lot of demos and discussions one-on-one with potential customers rather than the sense of lots of people visiting the booth. Yet again, I was wowing the people visiting my particular kiosk with our WinForms offerings, especially – again – our pivot grid and the simple way we provide to print it. The story of "give your end-users a pivot grid, let them play with it, sorting/grouping/analyzing the data, and then print the current view" resonated deeply with everyone I showed it to.

    Also I provided some ASP.NET and Sharepoint demos to relieve the pressure off Mehul and Paul. That seems to be another meme here: ASP.NET is not dead, which you might be forgiven of assuming given Silverlight and ASP.NET MVC, but is really thriving.

    Another visitor went into great detail about his particular requirements for the Windows app his team is writing. The grid suited but our rich editor/spell check did not. The reason is that he wanted the editor to support a special RTF code to protect chunks of text from being altered, and the spell checker to support multiple dictionaries at the same time. Both of those sound intriguing to support. I'll have to have a chat with the guys.

    And then last night we had some extremely good news. More on that in a moment.

    Onto Day 4, the final day. A smidgeon under 4 hours of booth work today and then the strike!

  • Microsoft TechEd 2009: Day 2

    After the rush of the first day at TechEd, the second settled down in to a series of more in-depth presentations in our booth. I'm primarily responsible for demoing our WinForms controls (we have 6 kiosks, one for each of WinForms, ASP.NET, Silverlight, WPF, XAF/XPO, and CodeRush/Refactor! Pro) and I must admit that I had more inquiries in day 2 than I did on the initial day. Also, partly because of that, I think, but also because the first day jitters had gone, I'd settled into the groove of doing a good demo.

    So, for example, I had an existing customer come up to me and ask about the designer for XtraGrid. It seems that he'd been using the grid for a while, but had never investigated the nooks and crannies of the designer. Now, I know full well that the XtraGrid is a rich product, bordering on complex, but it speaks volumes to the problems of writing software that exposes better discoverability of its features. We then went on to some discussion to some of the run-time features as well. All in all, a good chat.

    For some reason (maybe I didn't get the memo), I've had a number of people ask me about our pivot grids and charting at this TechEd in an effort to understand what we do about Business Intelligence, to use the jargon. Our story here is pretty good, although, for the life of me, I can never seem to remember what Microsoft's cube server is called (quick surf: it's Microsoft SQL Server Analysis Services, or SSAS, although I was calling it SQL Server Business Intelligence at one point), and we integrate charting with the pivot grid very easily. (And, from them both, printing is a breeze.)

    Also, yesterday lunchtime I was visited by Lee Abramson, the Product Manager for the Open Platform Solutions at Novell (that is, the guy who looks after the Mono "product"). We had a brief chat about Mono, especially with regard to Linux web servers, and I promised to go and have a chat with one of their senior devs in their booth over the next couple of days to see what they're doing in that area and how our ASP.NET products can fit in.

    All in all, a productive day in the booth and an enjoyable one. On to day 3!


Chat is one of the many ways you can contact members of the DevExpress Team.
We are available Monday-Friday between 7:30am and 4:30pm Pacific Time.

If you need additional product information, write to us at info@devexpress.com or call us at +1 (818) 844-3383


DevExpress engineers feature-complete Presentation Controls, IDE Productivity Tools, Business Application Frameworks, and Reporting Systems for Visual Studio, Delphi, HTML5 or iOS & Android development. Whether using WPF, ASP.NET, WinForms, HTML5 or Windows 10, DevExpress tools help you build and deliver your best in the shortest time possible.

Copyright © 1998-2018 Developer Express Inc.
All trademarks or registered trademarks are property of their respective owners