Monday, November 20, 2006

reporting November CTP review

Only six short months ago, telerik announced that it would be delivering a full featured, stand-alone .NET reporting product. We are still months away from a final product, but earlier this month telerik unveiled an early CTP (Community Technology Preview) of reporting to give developers a taste of what's to come. I posted an extensive screenshot gallery of the November CTP early last week, but today I'm going to comment on my overall experience installing, configuring, and using telerik reporting.

installation

Even though it is only an "alpha" release, the November CTP of telerik reporting does come with an easy to use Windows installer (Fig 1). Anyone who has used the Windows installer for other telerik products will find the experience familiar. The installer comes with two basic parts: the main binaries for reporting and a number of pre-built examples. One thing not included in the November CTP is documentation (which telerik makes clear on the beta download page), so this CTP is definitely not for the weak of heart.

The installer runs fairly quickly; the total install only took a few minutes on my 3.2 GHz, 2 GB RAM desktop machine. The longest stretch of the install is the time that it takes to update the Visual Studio Toolbox, but a moving progress graphic reassures you that the install hasn't hung (Fig 2).

My only problem with the install was related to the included SQL Server demo database. The installer was designed to work with SQL Server 2005 Express (which I don't have installed) and it did not recognize my running default instance of SQL Server 2005 Developer Edition. Using some very complete help available on the reporting forums I was able to manually install the database and grant the necessary permissions for the demos. Disaster averted.

configuration

Most people who install the November CTP will not have any configuration tasks to complete before they can start playing with the demos. Since the installer didn't like Sql Server 2005, though, I had to add a few extra steps to get everything setup correctly. After I followed the instructions for manually installing and configuring the AdventureWorksT sample database, I had to update the Web.Config (for ASP.NET demos) and App.Config (for WinForms demos) files with the correct connection string to my local database. With those quick updates done, I was ready to hit F5 and play with the demos.

demos

The November CTP includes seven demo reports for both WebForm and WinForm examples. The same report definitions are actually used for both sets of examples, the only difference between the two is the viewer.

Telerik reporting ships with two different viewers, one for the web and one for Windows, both of which look and behave very similarly. The Windows viewer includes a few extra functions (like Zoom and Page Setup), but it's possible the features provided in both viewers will change dramatically between now and the release. The viewers also expose some basic functions like paging, printing, and exporting (to TIFF or MSHTML only, more formats to come in the final release, including PDF, Word, HTML, and more).

The report definitions are all stored in a Visual Studio C# project and complied into a single assembly. After I installed the CTP, I first tried to create a new Web Site in VS 2005 to test reporting. That's when I discovered that you cannot add report definitions directly to a Web Project. Instead, you need to create a new C# project and build your report definitions there and then import the complied assembly to your Web (or Windows) application. I'm not sure if that is indicative of how the final product will ship, but at first pass it seems like maintaining report definitions could become a bit of a chore if it requires you to maintain a separate project just for reports. On the other hand, it makes it easier to add reports to your "report assembly" and deploy them to your site if you run complied ASP.NET sites, so there could be some advantages to this configuration. But I digress; back to the demos.

The ASP.NET demos (and WinForms demos, for that matter) start on a simple page with a DataList that contains links to the available reports. When you click on a report name, a new page is opened with the report viewer filling 100% of the page (Fig 3). The demos show off a number of features available in reporting, including multi-column support (though that support does not seem to work on the web yet), bound text elements, bound image elements, grouping, and multi-section support. All of the reports look the same on the web or in Windows, with the exception of the multi-column reports that render as single column reports on the web. The demos definitely show the ability that reporting has to create a variety of reports, but the functionality is still very basic. Check out my screenshot gallery to see all of the demo reports.

design time experience

Report definitions end in a .cs (C#) extension, but they they open in a new report Design View. The report Design View gives you a graphical tool for laying out your report and it is complemented by two additional views: the PreviewView and the HTMLPreviewView for WinForms and WebForms respectively. These three views make it easy to modify your report and quickly see how it will render on the web or in Windows, which is a major improvement over preview capabilities other reporting products expose. The design and preview views also integrate directly into the Visual Studio IDE, which is another benefit over products like Crystal Reports.

Laying out a report is a familiar affair if you have ever used Microsoft Access' Report Designer or Crystal Reports Report Designer (or any other number of visual report designers I'm sure). In the November CTP, you only have PictureBox and TextBox items to work with on the report but many additional elements (including shapes, sub-reports, etc.) are supposed to be added in the final product. You can right-click on a report to reveal options for adding additional sections (like PageHeader or ReportHeader) or groups to your layout. The GroupReport is the best demo to look at to see how the grouping and sections work (Fig 5).

Reports are connected to your data source through standard ASP.NET DataAdapter and DataConnection objects (of the SQL Server variety in the demos). Using the familiar data objects makes it easy to understand the data connection and configuration, but it also makes the data connection feel less integrated with the report as you might expect a reporting product to deliver. I expect the final release will probably address this area too, though I'd consider this a minor issue at worst.

Adding a new report to the assembly is easy. Just right click on the solution to add a new item and choose the new "telerik Report" item from the "Add New Item" dialog. Once the report has been added, begin adding TextBox elements and binding them to your data source until you have the report you're after. You can use the Preview views to see how things will look with live data from your database and then jump back to the design view to make any desired changes. When you're done, compile your report project and copy the assembly to your website's bin folder.

licensing

The final licensing details for telerik reporting have yet to be announced, but we do know that it will be licensed separately from the r.a.d.controls. That shouldn't come as much surprise since this product is a dramatic departure from the other UI controls currently included in the developer license, but it does put reporting on a pedestal to forcing it compete on its own merits. No pricing has been announced, but I expect those details will be available early next year.

conclusions

Even in its current state, telerik reporting is shaping up to be a very compelling product. It will make it very easy to build professional looking reports and deploy them to the web or Windows with little effort. The November CTP is definitely rough around the edges, but the telerik reporting team has at least four full months to enhance and refine before the official release (which is an eternity in telerik release terms!). There is no question that telerik will be up against some very capable and veteran competitors in the reporting space, but telerik's ability to deliver outstanding UI at very affordable prices should give the big guys a run for their money. This will definitely be a must have product for any telerik developer.

//Todd Anglin //November 20, 2006