DevExpress Data Blog

This blog features all things having to do with data shaping, layout, and presentation!
  • Build 2014 Recap: S. Somasegar Interview

    One of the best parts of attending Microsoft conferences is the access we have to the people building the very tools we use day in and day out. S. Somasegar is the Corporate Vice President of the Developer Division at Microsoft. I was delighted to spend some time asking questions about some of the interesting announcements at BUILD 2014. Topics varied from Universal Windows Apps to open sourcing C#. We also talked about some of the fantastic developments with Azure and how they have improved their PaaS offerings. We also discussed what Microsoft intends to do to support those of us still on ASP.NET WebForms as well as WinForms. Would love your thoughts about what he said as well as the overall direction Microsoft is taking. As I have mentioned in earlier posts, I really like the new openness Microsoft is espousing with its developers. Enjoy!

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Twitter: @SethJuarez

  • Build 2014–Day Two Observations

    After the conclusion of an eventful day two here at Build, I thought I would share some insight into what I thought it all meant. In a nutshell, we live in a post OS world and Microsoft is embracing it with Azure it while maintaining its flagship compiler in an interestingly new way. Let me elaborate a bit.


    It is hard to grasp the entire reality of what Roslyn actually means for .NET. If a static language is a house, the compiler is its foundation. What Microsoft in effect did with the Roslyn project is pick up the house and build a new foundation while attempting to maintain the integrity of the walls. My sources tell me that every single .NET product in Microsoft is now compiled using Roslyn. This is a remarkable feat. To one-up themselves, they decided to go ahead and open source the entire Roslyn compiler. The first and obvious question is “why?” In an interview with Mads Torgersen (more on that later) he mentioned that doing so would allow folks to do more interesting things not only with the languages themselves, but with how the languages interact within Visual Studio. In other words, partners would have the same advantages as Microsoft when building tooling around Visual Studio.

    .NET Foundation

    Also, with the creation of the .NET foundation, anyone can contribute to .NET making it a truly vibrant and potentially innovative platform for development. Notice that at the forefront of the list of those in the .NET community is Miguel de Icaza. At Mix 11 I remember he coined the phrase “We love C# more than Microsoft does.” I believe that is no longer the case. It seems to me that for truly native device experiences Microsoft is putting all of its support behind Xamarin.

    Xamarin Session

    What you see above is not a keynote, it is a regular conference session with a little less than 1200 in attendance. It is clear that not only is Microsoft putting its stamp of approval on the Xamarin approach, but the Microsoft community is eager to use .NET to deliver multi-device experiences.

    Windows Azure

    In yesterday’s summary I mentioned that we live in a post OS world. Devices are becoming the ubiquitous computing platform of choice for completing quick every day tasks. Yesterday we saw devices 9” and smaller get an incredible offer: a free OS. While this seems completely contradictory, Microsoft has “reimagined” (to use their favorite term) the OS in a non-OS way.

    Microsoft today announced a number of IaaS and PaaS improvements and features that make Azure the ultimate OS with devices being the new “programs” so-to-speak. Just like windows of yore welcomed programs from really any source (including competitors), they are now embracing devices in exactly the same way. They are making it easy to create the backend infrastructure to support these devices in a pretty amazing way. Never in my life could I have imagined a John Gruber presentation during a Microsoft keynote; yet nonetheless there it was. It turns out that if John himself wants to build a killer app with cloud persistence he really can only turn to Amazon or Microsoft – Apple can’t help. While IaaS is interesting, it’s PaaS that is compelling to me. On that front Microsoft made announcements for Web, Mobile, and Data use cases in the cloud.

    Web Announcements

    For web anyone can now easily scale a website, manage traffic, backup, and run long running jobs pretty easily directly from Visual Studio. Many of these features were previously in beta mode.

    Mobile Announcements

    Azure as a mobile backend handles a ton of functionality that would otherwise be difficult for a small shop to administer.

    Data Announcements

    And finally Azure as a repository of data is a compelling alternative.

    The idea that the cloud was the new Microsoft OS dawned on me when I looked at this:

    Azure Portal

    It looks like the control panel (or task manager) for an OS! While this is not a revelation to some, it has become clear to me that this is really the only play Microsoft has: it also turns out to be the best one.


    What does this mean for you dear DevExpress reader? I think it means it is an exciting time to be a developer in the .NET space. I also think it is a great opportunity for you to leverage some of the innovations we have been building into more traditional .NET technologies that are designed to bridge the gap between your current investments and the new directions Microsoft is taking.

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Twitter: @SethJuarez

  • Build 2014–Day One Observations

    I thought I should jot down a couple of observations from Day 1 here at Build 2014. Would love your thoughts! Apologies for some of the blurry images up front.

    Windows Phone 8.1 Update

    While there was a ton of time spent on discussing the Windows Phone update, I thought the most interesting thing discussed was Cortana, the new Microsoft Digital Assistant. A lot of thought went into its implementation and it shows. It was designed to learn about the user in order to be more effective at displaying the right information at the right time. Two examples I think cut to the heart of it: context whittling (my term) and person based tasks. Context whittling is a situation where an additional query to Cortana on an already queried set returns a more refined result. In other words the context can be shrunk with each additional query. Person based tasks are tasks issued to Cortana based around a particular person. Whenever that person comes into context, Cortana reminds the user of a task related to the person in question.

    In addition to Cortana, a slew of new devices were announced by Stephen Elop:

    Lumia 930

    Lumia 630/635

    Windows 8.1 Update

    The next update to Windows is slated to contain a number of features designed to improve support for the keyboard and mouse. The first is an improved start screen:

    Windows Start Screen

    In addition to the new start screen efforts have been made to have a more desktop-friendly approach to apps: these will also run from the task bar and execute as normal apps. Early complaints regarding the fragmentation of the desktop experience appear to have resonated with Microsoft enough to make these important changes. Finally, enough noise was made about the start menu that it will one day make its way back into the OS for good (still a prototype):

    Windows 8 Start Menu

    Universal Windows Apps

    This portion of the keynote resonated with me primarily because it reminded me of XAF. Instead of targeting Windows and Web, UWA’s (I like to pronounce it yewas because I can) target both the Windows 8 device as well as the Windows 8 Phone device using a shared codebase. This also includes specific Visual Studio tooling to work with the shared and non-shared code.

    Uiversal Windows App

    This is only the beginning of it: Microsoft is also currently working on extending this type of application development to the XBox.

    Office Touch

    Microsoft announced their work on a Touch-Based office for Windows 8.

    PowerPoint Touch

    I personally love this application. It is clearly touch friendly and a great deal of effort was put into making the ribbon more touch friendly without sacrificing space.


    There were obviously a bunch of other things mentioned (internet of things, more phone features, open sourcing WinJS, etc.) in the keynote that I’ll leave for another time. The overwhelming feeling was one of optimism – a far cry from the first Build to say the least. Microsoft feels more open and developer friendly. Satya Nadella (Microsoft CEO) even showed up in a t-shirt and jeans to answer honest-to-goodness difficult questions (why should I choose to build for Windows Phone instead of Android?) in an open and conversational manner. They also spent a great deal of time discussing roadmap-type stuff. My feeling is that if Microsoft wants the Enterprise on board with what they are doing they should at least give them a heads-up (something Microsoft did today).

    Last and most important: Microsoft now realizes that it can no longer rely on revenue from the OS (particularly on devices 9” and smaller). In fact, it will no longer be selling the software but giving it away for free. While this was not necessarily trumpeted, I think it is a critical departure from Microsoft’s OS centric past to a device and service based future.

    We’ve had tons of folks stop by to chat and take a look at what we offer as well.

    DevExpress Booth

    It has been great learning what our customers are developing and what our potential customers are keen on creating.

    On to Day 2!

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Twitter: @SethJuarez

  • What's New in 13.2.8 for the .NET DevExpress Dashboard

    We’ve managed to sneak a couple of features into our dashboard offering in our next minor release!

    Filter Popup

    Filter Popup

    We recognize that a dashboard is sort of a living report with many filters often created and executed. Instead of cluttering the title space we’ve added a new popup describing the active filters currently set for the entire dashboard. In the case above this particular dashboard has a filter set on the ticket type as well as a selected state (off screen in this instance).


    Print Preview Options

    We’ve also added a couple of print preview tools to fine tune the type of output you would like to see when printing. Above you can see the new Dashboard Print options. Below you can see the new Header/Footer options.

    Print Preview Header and Footer Options

    These header/footer options allow not only the insertion of custom text (to the left, middle, or right), but also allow for “calculated” text. This type of “calculated” text includes the current, date, user, page number etc.


    Previously our export options were non-existent (we let you choose a file name). We have beefed up our PDF export options:

    Dashboard PDF Export Options

    We’ve also updated (added really) options for exporting the dashboard as an image:

    Dashboard Image Export Options

    One feature of interest is the Filter State. When checked this creates a view into the current state of the dashboard:


    Overall a big boost for exporting the dashboards you create.

    Data Items Area Improvements

    This is by far my favorite addition. Take a look:

    Group and Item Movement in Data Items Section

    Moving things around in the Data Items  section proved to be extremely difficult until this release. We have added the ability to move around items in the Data Items area by simply, well, moving them around. Notice that there are essentially two ways of moving things in the Data Items section: by group or by field. Moving by group essentially moves the entire collection of elements within the group to a different position. One can also move an element of a particular group out to its own area. Like I said, one of my favorite additions: it should certainly shorten the amount of time we spend experimenting with just the right layout.

    Final Words

    Overall I’m pretty excited with our dashboard product. We are continually making great strides in making this a truly remarkable tool for exploring and understanding data.

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Twitter: @SethJuarez

  • BASTA 2014 and Mixer

    I was extremely fortunate to attend BASTA 2014 in Darmstadt. Germany is a wonderful place full of extremely intelligent developers building amazing things. One of my objectives is to learn about what folks are building with our products and to find ways we can improve.


    Oliver (our Training Director) was on hand to provide great technical content (in German no less).

    Oliver Sturm

    John Martin was also in attendance (he works closely with developers in Germany and is a seriously awesome colleague):

    John Martin

    Oliver and I had a series of talks at the conference as well. To be honest, I had one talk and he had 200 or so (if I remember correctly).

    One of the highlights of the event was our Customer Mixer. We invited customers from all over Germany to spend some time with us talking about what they are building and how we can improve our products in general. It was probably one of the best parts of the trip: speaking and interacting one-on-one with each and every customer.

    Mixer Part 1

    I seriously think I managed to speak to everyone there:

    Mixer Part 2

    There are tons more pictures if you would like to have a look.

    If you are interested in us coming out to an event let me know! I am anxious to really get into how our products are actually being used (as opposed to the awesome demoware I manage to create on a daily basis).

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Twitter: @SethJuarez

  • Winforms Snap: Mail-Merge In Depth

    Previously I outlined some of the more interesting features that were released in Snap reporting for our 13.2 release cycle (including mail-merge). I thought it would be interesting to take a detailed approach at the Snap mail merge features to show you the power that we’ve added to an already rich product. We’ll first start with the general merge process and then sprinkle in what Snap adds to the mix.

    Traditionally the mail-merge process consists of 4 general steps:

    1. Creating a template document,
    2. Selecting a data source,
    3. Adding merge fields to the document, and
    4. Merging the data with the template document

    With Snap this is pretty simple. So what is different/better? Let’s look at three things: master-detail, in-place filtering, and navigation/sort/preview.

    Master-Detail Mail-Merge

    Turning a document into a mail-merge template is performed by enabling this mode for one of the connected data sources.

    Setting Mail Merge

    In the resulting document, the whole of the static content becomes wrapped around any inserted merge field. When merging a finished document, the static template is repeated with each record supplied by the corresponding merge field’s data source. This is in contrast to creating regular Snap reports, where an inserted field instantly unfolds to list all of its data records within the document body.

    When performing a master-detail mail-merge we’ve combined the best of two worlds. Within a master-detail structure of a report, Snap derives a field's role from its level in the data source hierarchy.

    Master Report: Merge Fields

    When inserted from a hierarchical data source, fields that belong to its top level are attributed to the "master" section of a template. To blend with the rest of report content, the data from these merge fields is inserted as inline text.

    Merge Fields

    Detail Report: Data Fields

    Fields that belong to nested levels of a data source form part of the "detail" document section. Inserted to a template, such data field is displayed as a list conveying the rows of underlying data records.

    Detail Fields

    In a document structure, this template is reproduced with each new occurrence of data rows belonging to the "master" section, to accompany it with a corresponding accessory data.

    Data fields that belong to the same hierarchical level add up to create a document table with multiple columns. For further arrangement of data, Snap tables support automatic summaries, sorting, grouping, and filtering.

    In-Place Filtering

    Once the Snap template is created and bound, the need arises for creating filters to narrow the data displayed. With Snap there are two filtering options: quick filter and the expression filter.

    Quick Filter

    Quick Filter

    Quick filtering is exactly what you’d expect – pick records by their name. All you need to do is select the element in question on the Snap design surface and the quick filter dialog box replaces the items with the distinct set of the item in question. In this case I’ve highlighted the country field in order for the quick-filter selection to include the list of countries.

    Expression Filter

    When simple record selection is not enough, you can easily create any complex expression using the following dialog:

    Expression Filter

    This editor allows for the creation of any criteria with any available fields.

    Navigation, Sorting, and Preview

    Lastly I wanted to talk about navigation, sorting, and preview. Navigation is simply a case of selecting the appropriate record you wish to display.

    Record Navigation

    To the left of the navigation controls you can bring up the Sort dialog box to order records based on any field (or sub-field in the master-detail case) available from the data source.

    Record Sorting

    To publish a report, you have the following options:

    1. send it to a printer;
    2. export to a third-party document format (such as doc, docx, rtf, odt, html, pdf, etc.);
    3. display the document on-screen in a Print Preview window.

    Once one of these options is selected, you further have the ability to select which records to publish as well as how to separate each record.

    Snap Export Options

    We also are careful to process the actual document assembly to an entirely separate thread. This ensures snappy response and avoids lock-ups.

    Asynchronous Merging

    This process produces a clear preview based on our award winning reporting tool.

    Print Preview


    Overall Snap is truly a remarkable no-touch reporting tool that can be easily embedded in your WinForms applications.

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Twitter: @SethJuarez

  • DevExpress Dashboards: Visual Studio Integration, Server Side Parameters, and New API (What’s New in 13.2)

    We have done a great deal of work on our dashboard tool for both Windows and the Web. While I can’t detail every new feature, I thought I would mention 3 new developer friendly things available starting in our 13.2 release.

    Visual Studio Integration

    In this release you’ll now be able to build dashboards directly in Visual Studio. The process is pretty straight forward.

    Add a Dashboard via the Template Gallery

    Literally right click and select Add New DevExpress Item and the wizard appears.

    Dashboard Template Gallery Item

    Add Data Source

    Once the designer loads up you can use the new Dashboard Visual Studio menu item to add/edit the available Data Sources.

    Edit Dashboard Data Sources

    Data Source Types

    As you know, our dashboards bind directly to your database or to an internal project data source.

    Two Dashboard Data Source Types

    As you can see we have added UI in an effort to simplify both of these cases.

    Build Your Dashboard

    Full Visual Studio Dashboard Integration

    Once bound you can create your dashboard layout just as you did before. In Visual Studio, however, you have more fine-grained control through the use of the standard property editor available in the IDE.

    Creating a Dashboard Preview

    Just like a DevExpress Report, a dashboard is just a set of files that can be edited directly in Visual Studio:

    Dashboard Files

    Just like reports, you can also set the dashboard source at design time (once you compile).

    Setting Dashboard Viewer Source

    Overall the Visual Studio experience is intended to be both simple and familiar so you can be effective the moment you install the product.

    Server Side Filtering with Parameters

    This was a highly requested feature! Even though previous versions could handle server side filtering, it was cumbersome and required a bit of code. Starting in 13.2 you can customize a Dashboard Data Source to do server side filtering  using the new parameters feature.

    Dashboard Query Designer

    When using the Dashboard Data Source Wizard, there are now two additional buttons: one for parameters and one for filtering. The notion of parameters in dashboards is virtually identical to parameters in reports. In this case they can be used to directly filter data on the server side with the aid of the Filter Editor:

    Server Side Parameters and Filters

    In essence you create the parameters you want and then add the filters using the filter editor. Then at design time (and runtime) you can populate the parameters to push the filtering to the server.

    Setting Dashboard Filter at Design Time

    This can be achieved by clicking in the dashboard title area (the question mark to the right of “Dashboard”) and typing in the desired parameter value.

    Better API

    Here’s another thing a lot of developers were itching to get their hands on!

    Dashboard Viewer Events

    We have added a number of events to the dashboard viewers that should allow programmatic control over the most important aspects of your visualization. Here are a couple:

    1. DashboardViewer.MasterFilterSet – control what happens when a master filter is set
    2. DashboardViewer.MasterFilterCleared – control what happens when a master filter is cleared
    3. DashboardViewer.DrillDownPerformed – control what happens when a drill down is performed
    4. DashboardViewer.DrillUpPerformed – control what happens when a drill up is performed

    For each event, there event parameter (e.DashboardItemName) that will identify exactly which dashboard item raised the event as well as other important ancillary information such as selected values, ranges, drill-X path’s, level’s, etc. In short, complete control.


    This is not everything of course. We have also added new map dashboard items (I will go in depth on these later), multi-selection in master filters, and much more. This is shaping up to be an exciting release!

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Twitter: @SethJuarez

  • Windows Spreadsheets: Charting Support and More (What’s New in 13.2)

    There are a metric ton of fantastic features that we are adding to our spreadsheet control for windows (both WinForms and now WPF).


    I am happy to announce that starting in 13.2 we have integrated charting directly into our spreadsheet control:

    Spreadsheet Charts

    All you have to do is highlight some data, insert a chart, and that’s it!

    Chart Options

    Once inserted you can change the chart type, modify the layout, and even change the chart theme via the design ribbon tab. In addition to the design tab, we also have a layout tab which allows even more fine grained control over the chart:

    Chart Layout

    Often when analyzing data it is sometimes easier to give the data to our end users and allow them the opportunity to shape and visualize data however they choose. This type of control will undoubtedly help provide insight to your customer’s data in a familiar way.


    There are tons of other usability features which we have snuck in to 13.2 release that provide the traditional experience one has come to expect from spreadsheet software. I will only mention four (there really isn’t enough space).

    Number Formatting

    We have created a really intuitive way of formatting numbers:

    Number Formatting

    Formula Bar and Name Box

    These additional controls help identify the current cell address, table name, or defined name under consideration (Name Box). The Formula Bar allows your end users to edit formulas (like they otherwise would in other spreadsheet tools).




    Conditional Formatting



    There are a bunch of other things I am leaving out (for now). Overall this is going to be a pretty exciting release: especially for those providing spreadsheet solutions directly in their applications.

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Twitter: @SethJuarez

  • DevExpress Report Server: Mixed Mode, Stored Procedures, Templates, and More! (What’s New in 13.2)

    I am excited to announce a couple of features that we’ve added to the DevExpress Report Server for our upcoming 13.2 release. The Report Server is one of the few products in the storied history of DevExpress releases where I’ve had input from its inception. I was there when we had the idea, pitched it to the company (yes we do that – maybe I should say more in a separate blog post), and released the first version. As the product continues to mature (with your excellent feedback) we feel that this is one of the most powerful and affordable ways of doing no-touch on-premise reporting. Let’s dive into some of the new features.

    Mixed Mode

    Previously the DevExpress Report Server would only function in either Windows Authentication Mode or Report Server Authentication mode. Now you can have both with “Mixed Mode” authentication:

    Mixed Mode Settings

    When in “Mixed Mode” users will now be able to choose how to log in:

    Mixed Mode Login

    In essence you can now allow both Windows Domain users as well as remote users with Report Server Credentials.

    Stored Procedures

    An often repeated feature request was the ability to seamlessly bind to result sets returned from executing stored procedures. I am happy to announce that starting in 13.2 you will now have the option to do so:

    Adding Stored Procedures

    Once bound the DevExpress Report Server will also display the available fields:

    Stored Procedure View

    The DevExpress Report Server also seamlessly handles the parameters that naturally come with using stored procedures. These parameters are automatically generated at design time (for preview purposes) as well as at report generation time (specifically when creating tasks):

    Task Parameters

    I think you will like the new store procedure binding experience.

    Email Templates

    The DevExpress Report Server sends out a number of emails to inform users of various events such as account activation, scheduled report completion, etc. These emails are quite bland. Starting in 13.2 you now have the ability to make them even uglier more beautiful! There are a number of email templates that you can now edit as part of the Server Settings:

    Available Email Templates

    Some of them (like most email subjects) are simple text boxes; others are much more:

    Editing Email Templates

    This was also one of the more requested features (we do listen).


    Another interesting feature that we’ve added in 13.2 is the ability to select report delivery options:

    Report Delivery Options

    This is perfect for the case where the DevExpress Report Server is running in an internal network but reports need to be delivered to folks outside of the network: they no longer have to log on to the Report Server to view reports.

    We’ve also made a number of usability improvements which I’ll let you discover as you upgrade and begin using the DevExpress Report Server. We are really excited to be pushing the boundaries between pure developer tools and end user tools: sometimes the best way to save on development time is to remove the necessity of development time.

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Twitter: @SethJuarez

  • DevExpress PDF: Working with Pdf Files in Code (What’s New in 13.2)

    DevExpress PDF Viewer

    In 13.1 we released a beta for our new pdf viewer. This excellent addition to our control suite enables an in app viewing experience for your pdf documents. Given that these documents can be loaded by filename or even from a stream of bits, you have the ultimate flexibility in loading and displaying pdf documents in a controlled manner.

    Consider the scenario, however, where you have hundreds (or thousands+) of pdf documents. Invariably the boss might one day ask for that one pdf document with specific text (any lawyers out there?). How does one efficiently search these documents without going opening each and every document? Starting in 13.2 we are greatly increasing your ability to manage and work with these documents within code.

    var search = "parameters";
    PdfDocumentProcessor processor = new PdfDocumentProcessor();
    var searchParams = new PdfTextSearchParameters
        CaseSensitive = false,
        WholeWords = true
    var results = processor.FindText(search, searchParams);
    while (results.Status == PdfTextSearchStatus.Found)
        var text = string.Join(", ",
                        results.Words.Select(p => p.Text).ToArray());
        Console.WriteLine("Found \"{0}\" on page {1}",
        results = processor.FindText(search, searchParams);
    Console.WriteLine("That's all folks!");

    Notice how easy it is to load up a pdf document processor and search for specific text. Now imagine doing this across your entire library of pdf documents!

    Working with PDFs in Code

    In the age of “big data” it is imperative that we, as developers, have the ability work with any type of data: be it structured or unstructured. Indeed the best way to derive the greatest value from our data is the ability to handle it all at once. I think this tool will greatly help with pdfs!

    As always, if there are any comments and/or questions, feel free to get a hold of me!

    Seth Juarez
    Twitter: @SethJuarez

Next page »

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 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, along with high-performance HTML JS Mobile Frameworks for developers targeting iOS, Android and Windows Phone. Whether using WPF, Silverlight, ASP.NET, WinForms, HTML5 or Windows 8, DevExpress tools help you build and deliver your best in the shortest time possible.

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