While working on a new project to illustrate the performance benefits of using client-side expressions to filter rowsets I came across a few issues that I would like to see Visual Studio’s Business Intelligence toolset address:
- When I create a new report in a project, as expected I’m confronted with a dialog asking me to describe a data source. However, I know that the Reporting Services instance already has a number of shared data sources, so I would like to leverage one of these. Unfortunately, there is no way to do so without opening the Report Manager, searching for a good choice and drilling into the details to extract the connection string. Suggestion: when the project starts, have the new BI Report Project wizard establish a base development connection to the target Reporting Services instance (as when creating a CLR executable project). This way the dialogs can provide a drop-down list of shared data sources already in place.
- Consideration needs to be made for situations where data source connection string keys are customized thus requiring the registration of a “unique” connection string. For example, if the developer changes the Application Name key to help isolate this data source from the others, but the Data Source name is the same as a registered data source, the existing Data Source is not overlaid (nor should it be) as changing a shared data source would be problematic (at best). Suggestion: When selecting a registered data source in the scenario described above, deny developers the ability to customize the connection string keys to prevent issues of contaminating working share data sources.
- When identifying a target Reporting Services instance, there is no clear understanding (in the wizards) of Reporting Services named instances. The wizard (and all of the documented examples) assume Reporting Services is installed on the SQL Server’s default instance which is rarely the case. Suggestion: Help the developer by locating and properly addressing the specific target Reporting Services instance. Note that the syntax for instance referencing has changed from SQL Server 2000/2005 to 2008 (the instance is now separated from the server name by an underscore (_) instead of a dollar-sign ($) character. Again, if the project asked for a target instance to begin with, this would be fairly simple to do when the wizard runs.
- When the Report Wizard creates the DataSet for the report, it does not give the developer a chance to give the DataSet a name. Unfortunately, the 2008 version of the designer does not properly change the DataSet name when the developer tries to do so. Suggestions: Fix the rename process (foremost) and add functionality to the wizard to permit developers to name the DataSet as it’s being built.
- When the Report Wizard creates a new report, it might be helpful to automatically style numerical data types with a developer-provided format. Suggestion: Permit the developer to create a default format mapping template that automatically sets the column Format property based on specific data types encountered as the report is generated.
- When the Report Wizard finds a BLOB/Image/VarBinary(max) column it should bind this to an Image control instead of a textbox. Suggestion: Do it right. Set the mime type to default to Jpeg and source to “database”.
- The report property page lists both Language and NumeralLanguage but does not expose drop-down lists for these values. Pressing F1 does not take the developer to the correct help topic. I was eventually able to find the right reference in MSDN via Google. http://msdn.microsoft.com/en-us/library/ms533052.aspx. Suggestion: add drop-down lists of acceptable language settings and fix F1 to point to a suitable discussion of this property—one that has examples of common language codes and links to find the entire acceptable list of codes.
- When selecting a property in the Properties dialog, I would expect that F1 would provide details on how the property should be set (at a minimum). Each time I try this, I’m taken to the “Project Properties” help topic.
- Once a developer sets an expression on a report, it disappears. Sure, it’s still there somewhere behind the scenes, but it’s masked by an inane “<<Expr>>” tag. Suggestion: setup a design-time tooltip to show the expression so a developer can easily determine the expression setting without having to drill into the properties.
- The report design surface does not expose the navigation bar (which appears at runtime) but it would be handy to expose the icons so that their properties could be set by clicking on the appropriate icon.
- When Reporting Services renders the parameter prompts, they are painted in a font over which the report developer has virtually no control. Suggestion: provide a mechanism to specify how, where and when parameter prompts are portrayed. I can see situations where the prompts should change as the user language changes or their vision is not so great (like mine). Suggestion: develop and entirely new parameter-capture paradigm that permits developers to capture parameters intelligently and to facilitate user interaction with the reports.
- When designing reports, we often have to re-order the columns. As it is, there is no drag-and-drop functionality in the designer to do so. No, one cannot simply select a column and use cut/copy/paste to move it. Suggestion: Make it so.
- When a user chooses from a parameter, they expect the report to render with the new parameter choice. As it is, they have to locate the “View Report” button and click it to get a re-rendered report. Suggestion: add a property to the Parameter class that permits a change in the parameter to re-render the report.
- When setting the properties for a report project, there are several ways to screw this up. First, it’s important to use SSL (https) to reference the reports and report server. When you want to set the TargetReportFolder, you have to know where to deploy your report. It would be nice to be able to browse to the currently installed report “directories” to see where it should go. When setting the TargetServerURL, there is a nice example in the dialog, but there is no help to suggest using https, or how to reference a specific instance of Reporting Services. Since the way instances are now referenced, it’s important to provide more help here. Suggestion: provide better linkages between the report designer(s) and the implemented/deployed reports and data sources on the target Reporting Services instance.
More coming later…