Earlier today I pushed out the next maintenance release for Data Dynamics Reports, v1.6.2084.14. This new release adds almost a dozen new features and many bug fixes.
This release has been the culmination of several months of work and collaboration between the development team in the PowerTools division of GrapeCity and the Global Services division. Thanks to the work of the people on both teams this release fixes many issues with the web viewer and improves the expected behavior of it as well.
Included in this release is a change in our caching behavior.
When we first created DDR we thought we would be doing our users a favor by caching reports in the web viewer so that multiple requests for the same report would be faster and we were in a position to do the right thing. Fast forward 3 years, several forum posts, and many users later and it seems like the “right thing” is not always the right thing to do.
When developers and users are expecting the caching things are fine; however this isn’t always the case. Some developers were expecting that when they tell the viewer to load a report (via the ReportName property or the SetReport method) that we would re-load the data associated with it as well. End users were expecting that when they click the “View Report” button that we would re-run the report.
Both are reasonable assumptions that conflict with the idea of caching, we could add overloads that would do this for the developer; however users wouldn’t have a good way of accomplishing this. And what then would happen for users who are looking at a cached version and a different user wanted the report refreshed? All of these questions lead to one conclusion; that removing caching would lead to behavior that all users can expect.
So, in this release we have removed caching; that is good news for anyone that was frustrated by the behavior in the past. If you were affected by it, I recommend trying out the web viewer control again.
In the next release we will be providing a new feature that allows the developer to save a report that has been run to a file (or other stream) and load it back at a later time into a viewer control.