Reporting Services and ReportViewer Controls in Visual Studio 2010

The ReportViewer controls is are ASP.NET and Windows Forms controls in Visual Studio 2010 that you can add to an AJAX-enabled web page in an ASP.NET web application/site and to a form in a Windows Forms application, respectively. The control embeds report processing and viewing capabilities directly into your application. It also provides an integrated design environment so that you can build client report definitions (.rdlc) using data from any ADO.NET data object. A full-featured API provides programmatic access to the control and reports so that you can configure report functionality at run time. Furthermore, the ASP.NET AJAX control in Visual Studio 2010 introduces a set of JavaScript API, built on Microsoft AJAX library, that allows the host application to interact with the ReportViewer control using client-side programming.

To learn more about the ReportViewer control, search for "ReportViewer Controls" in the Visual Studio product documentation.

Feature Summary

The following table shows how the ReportViewer controls and Reporting Services compare on report processing, data retrieval, deployment, and report design. You can use this information to determine which Microsoft reporting technology is the best choice for your application.


In remote processing mode, the ReportViewer controls in Visual Studio 2010 support SQL Server 2008 Reporting Services or SQL Server 2008 R2 Reporting Services.


ReportViewer controls

SQL Server Reporting Services

Report processing

Local Processing Mode:

Processes reports in the client application.

Remote Processing Mode:

Renders server reports that are processed on a SQL Server Reporting Services report server.

Processes reports on a report server.

Report output formats

Local Processing Mode:

GDI for reports that run in Windows applications. HTML for reports that run in ASP.NET Web pages.

Export formats include Excel, PDF, and Word.

Remote Processing Mode:

Available rendering formats depend on the rendering extensions that are configured on the SQL Server Reporting Services report server.

HTML, MHTML, TIFF, PDF, Excel, Word, CSV, and XML.

It is possible to write custom output formats.

Report features

Local Processing Mode:

Interactive and static reports for multidimensional, relational, and visual data.

You can define custom assemblies that run in the report.

You can use expressions to provide conditional formatting and aggregates.

Remote Processing Mode:

Available features are determined by the SQL Server Reporting Services report server.

Report features include all of those provided in reports that run in a ReportViewer control in local processing mode, plus support for custom report items that you can create and run in a report.

SQL Server 2008 R2 Reporting Services supports additional features, such as maps, sparklines, aggregates of aggregates, and processing and rendering enhancements.

Data source types and data retrieval

Local processing mode:

Bind directly to ADO.NET data tables and consume DataTable instances supplied to the control. You can also bind directly to business objects.

Remote processing mode:

Available data source types depend on the data processing extensions that are configured on the SQL Server Reporting Services report server.

Integrated data and report processing on a report server and on remote data servers.

Data processing extensions on the report server determine supported data source types. Default data sources include SQL Server, Analysis Services, SQL Server Integration Services, Oracle, XML, and OLEDB. In SQL Server 2008 R2 Reporting Services, the following data sources are also supported: SQL Server SharePoint List, SQL Azure, and SQL Server Parallel Data Warehouse.

Custom data processing extensions can be created to support other data source types.

Report parameterization

Local processing mode:

Built-in support for report parameters provides conditional filtering of the result set based on a static value.

In local processing mode, the ReportViewer control does not provide a parameter input area that you can use to pass values used during data processing. There is no integration between data and report processing. If you want to accept user input for query parameters or report parameters at run time, you must write code in your application to support it.

Remote Processing Mode:

Same as SQL Server Reporting Services.

Report parameters can be mapped to query parameters, providing a way to pass in report parameter values to a query at run time. A parameter prompt area is provided on the report by default. Parameter properties can be defined at design time and managed at run time.

Report design and Visual Studio integration

Local processing mode:

Create client report definition (.rdlc) files in Visual Studio. Adding a Report template to a project creates a report definition file, adds the file to your project, and opens an integrated report designer in the Visual Studio workspace. Alternatively, adding the Report Wizard template to your project helps guide you through the steps of report creation.

The Visual Studio Data Source wizards can be used to provide data in your application for subsequent use in the report.

The Visual Studio Report Designer does not include a Preview tab. To preview your report, run the application and preview the report embedded in it.

The Visual Studio Report Designer integrates with the Report Data window. When a user drags a field from the Report Data window to the report, the Report Designer copies metadata about the dataset into the report definition file. This metadata is used by the ReportViewer control to automatically generate data-binding code.

Remote Processing Mode:

Same as SQL Server Reporting Services.

Create report definitions in Visual Studio through the Business Intelligence Development Studio. The Business Intelligence Development Studio adds project templates that are specific to SQL Server components. To create reports, choose from the Report Server Project or Report Server Project Wizard templates.

A Data tab, Layout tab, and Preview tab allow you to define data, create a report layout, and preview the report in the same workspace.

Deployment and distribution

Redistributable controls and .rdlc files can be included in your application. In both local and remote processing modes, you can also pass in report definition as a stream.

ReportViewer hosts the report in a Windows Form or Web page in an application that you create and deploy.

The ReportViewer toolbar provides page navigation, print, search, and export formats to support run time operations.

Deploy a SQL Server Reporting Services report server. Report definitions are stored in a report server database, processed on a server, and viewed in a browser-based application or custom application.

A report toolbar provides page navigation, print, search, and export formats.

Viewing tools and SharePoint Web parts can be used to view reports.

Distribution features include subscription-based report delivery to e-mail addresses and file share locations.

Internet access

A ReportViewer control hosted in a Web page is recommended if you want to make reports available in an Internet-facing Web application.

You can fit the control and reports into an existing Web application, using the security infrastructure that your application supports.

You can configure a Reporting Services report server for Internet access. Depending on application and user requirements, you might need to create a custom authentication extension, modify configuration files, and configure the server for Secure Sockets Layer (SSL). For more information, see Planning for Extranet or Internet Deployment.

Enterprise features

ReportViewer controls can host reports that are in a report server-scale out deployment (report server deployment is transparent to the control).

You can use the control in custom applications that run in any high availability deployment model.

Reporting Services supports these enterprise features:

  • Scale-out deployment.

  • Scheduled and on-demand report processing.

  • Ad hoc reports that can be created on demand for one-time use or saved to a server.

  • Data-driven subscriptions that route customized report output to a dynamic list of recipients.

  • Management and configuration tools.


Customization is supported through the API.

You can also set properties on reports and the ReportViewer toolbar to determine visibility and feature availability.

Extensions can be created to add support for data processing, report delivery, custom authentication, and report rendering.

You can set properties on the report, the report toolbar, and report server.

Additional customization is supported through an extensive API.

Samples and Walkthroughs

Search for Samples and Walkthroughs in Visual Studio in Visual Studio" in the Visual Studio product documentation or on MSDN.

For information about samples and walkthroughs in Reporting Services, see How Do I Find Tutorials.


Search for ReportViewer Controls (Visual Studio) in the Visual Studio product documentation or on MSDN.

Reporting Services is documented in SQL Server Books Online.