Its been too long since I’ve said that.
Earlier today I posted the latest build of Data Dynamics Reports, 1.6.1818.0. This release has been in the making for some time now, and the release notes reflect that. There were over 450 cases resolved since the last mainline release. By the time I cut out the house keeping tasks and items that didn’t need separate release notes we are down to 199 features implemented and issues fixed in this build.
Let’s take a quick look at some of the new features!
Custom Data Provider UI
The sample displayed to the left is the one supplied with the product under the API\CustomDataProvider directory. The custom provider itself is fairly simple; it looks at a specially formatted CSV file and allows it to be used as a data source.
The custom UI gives users the ability to select that file with the UI rather than having to generate the query string themselves. In this case the query string is the contents of the CSV which would make creating it manually a difficult proposition.
The UI uses the standard UITypeEditor like you would find in any moderately complex object that exists in a property grid.
Image Designer Enhancements
The image report item has had a couple of small but useful enhancements added to it. When the image value is bound to a field — or some other expression that can’t be evaluated at design time — the control would display an empty image with a small placeholder graphic. Now the image report item will display the expression it is bound to, as well as the source that image will be coming from.
The second new feature works with the existing schema support in a dataset so that we know what data type a field is and can make intelligent decisions about what to do with it in certain cases. For example if we know a field contains a number, then we can apply the Sum aggregate on it by default, where as if it is a Date or String we will apply the First aggregate.
We’ve taken that concept one step further, and now support fields containing a byte array. Dragging this type of field to the report surface will create an Image report item that is bound to the field. The field selector menu will also display fields that are known to be byte arrays as well as string values to make it easier to bind an existing image report item to a field.
Automatic Uninstall of Older Versions (kinda)
Maybe its because I install a lot of builds of the product, but this issue has bugged me for ages now…so much so that we switched our setup authoring tools to implement it*.
The setup authoring tool we used in the past had this weird bug where .NET 2.0 assemblies were not removed from the GAC on uninstall. To work around this issue we wrote an app that calls into the underlying Fusion API to do the adding and removing for us. However, another issue with the tool is that the way things were implemented, only the commands that translated into standard MSI behavior would get executed on an ‘automatic’ uninstall. If the uninstall was done via the regular uninstall UI all of our calls to the application would run. So for a while now, the work around has been to detect a previous version and if one was found to tell the user to uninstall it first before continuing.
We have now moved over to a WiX based setup application, which does lack the graphical flair of the old one however it makes up for it by uninstalling correctly.
Where does the “kinda” I mentioned fit in? To see the benefit of this you need to use the next releases after this, to uninstall this build. Since the fix is in the uninstaller, not the installer; it won’t be evident until this build needs to be uninstalled.
So, for one last time; uninstall Data Dynamics Reports manually before installing this build and remember the experience well. From here on out, it’ll be taken care of for you.
*Ok, we didn’t really switch to WiX to implement this feature; we switched to WiX because I wanted to change the way the setup flowed so that it didn’t ask 100 questions before it finally installed the product and around that time we made the decision to use WiX for any new installers so we didn’t run into stupid issues like the one above.
Improved Format Editor
The format property tells an object how it should format itself when displaying its value as a string. As developers, we probably know that already. However, do any of your users know that if they want to format a number as currency they need to set it to “C”? What about the other ways numbers and dates can be formated? To solve this issue we’ve implemented a tiny helper in the property grid which allows users to select the type of formatting they want from a list without having to know the .NET format strings before hand.
Improved Report Performance
Lastly, I want to talk about report performance. The team has spent several months recently looking at how we can get better performance out of the reporting engine. They looked in all sorts of places, how to render faster, how to render concurrently, improving the way aggregates are calculated, improving the way layout is done, and on and on and on.
We are pretty proud of where we are at right now, but we’re going to keep working on it too. We know that there are some more places that we could improve upon and we want to do that too, however it felt like we were at a good spot to release what we have so far before getting back into the grind of searching for these improvements.
I already mentioned that we are going to revisit report performance again. But we also need to address a little thing called Visual Studio 2010. That will be coming up in our next released build, to support VS2010 when it is released.
More designer changes! The other product managers and myself met in early February to discuss where we wanted to take the products in the future; and some of the things we talked about related to the way reports are created in Data Dynamics Reports today and that we can do a better job. I don’t think this will be in our next build; however it is something I would like to have done soon so that I can collect as much feedback as possible about the changes.
What about Data Dynamics Analysis?
Oh, we haven’t stopped working on it either! We will be making some announcements in the near future that will allow developers to make some big changes to the way they write their data analysis applications. I can’t wait! 😀