The Telerik RESTful Reporting Service provides the ability to centralize an organization's reporting needs. This service is instrumental in extending the reach of your existing Telerik Reporting assets to include all modern desktop browsers as well as to mobile and other touch-friendly devices. In this blog post, I have outlined how to get a Telerik REST Reporting service up and running quickly. In subsequent blog posts, I will review how to consume the REST service to display reports in various technologies.
Open Visual Studio and create a new ASP.NET MVC 4 application, I’ve named mine StandAloneReportServer.
In the next screen, select ASP.NET Web API as the project type.
Now that the project has been created, it is time to add a couple of references. Add a reference to Telerik.Reporting and Telerik.Reporting.Services.WebApi. On these references, ensure the Copy Local property is set to true.
Next, right-click on the Controllers folder in Solution Explorer and select to create a new controller named ReportsController. Replace the source code of this file with the following code, which is also available in the help documentation:
ReportsController : ReportsControllerBase
var reportsPath = HttpContext.Current.Server.MapPath(
The ReportsController is responsible for finding the requested report. In the CreateReportResolver method, you can see that we will first look in the Reports folder of our application for any report files that have been created using the Stand-Alone Telerik Report Designer tool, these files are saved with the extension *.trdx. If the requested report is not found there, it will fall back to looking for a compiled report represented as a C# class in all referenced assemblies using the ReportTypeResolver. The CreateCache method serves as an internal cache mechanism for the Reporting Engine. You can use either the file-based approach depicted in this example or by using a database.
Next we will need to register some routes. Open the Global.asax.cs file, and add the following using statement:
Then in the Application_Start method append the following line of code:
This is all that is required for the RESTful Telerik Report Service to run. What we need now is the actual reports. For this example, let’s create a Reports folder in Solution Explorer to hold Telerik Report Designer reporting files. Right-click the Reports folder and select Add Existing item, then navigate to the Telerik Report Designer samples (located in a location similar to C:\Program Files (x86)\Telerik\Reporting Q3 2013\Report Designer\Examples), select all the files and add them to the project.
Next, navigate up one level from the examples (C:\Program Files (x86)\Telerik\Reporting Q3 2013\Report Designer) and copy the connection string for the reports from the Telerik.ReportDesigner.exe.config file, and paste it into the connection string section of the root Web.config file of our project.
"Data Source=(local)\SQL2012;Initial Catalog=AdventureWorks;Integrated Security=SSPI"
We have received some questions regarding securing the Telerik RESTful Reporting Service. You should approach security as you would approach securing any ASP.NET Web API service. Currently you can easily add authorization at the ReportsController level by using the Authorize attribute from the System.Web.Http.AuthorizeAttribute namespace.
Remember that you are free to clean up any of the boiler plate controllers and associated views that the ASP.NET Web API template generated that you are not using (namely Values and Home). In this blog post you saw how easy it was to get a Telerik RESTful Reporting Service up and running. Stay tuned to see how we use this service to serve up reports to various user interface technologies.
Carey Payette is a Developer Advocate. You can follow Carey on Twitter @careypayette or read her personal blog at www.codingbandit.com.
Copyright © 2016, Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks or appropriate markings.