Unlike other general topics such as ASP.NET, there are less than 10 books about Reporting Services in the market so far, and this book is one of the first five books available in the market that paved the way for others in this subject (When you go through this book, Teo will inform you when there is a beta bug, and tell you the workaround, if any)
Chapter 1: Introduction to Microsoft Reporting Services
The author introduces Reporting Services (RS) like the convention and definition, and some brief information of report definition language, security and scalability. Moreover, the author mentions the architecture of RS and different components of RS as well. A quick and short hand on lab is provided to get readers started at the end of this chapter.
Chapter 2: Report Authoring Basics
The author shows how to create RS in Visual Studio (VS) .NET with preview tab, preview window and report server, then he shows how to migrate from MS Access and create a report programmatically. Next, he demonstrates how to use ad hoc report builder and third party tool. The content of authoring report with third party tool is much better than the part in VS.NET though.
Chapter 3: Working with Data (Best Pick Chapter)
The author defines and shows how to create a report-specific and shared data source for RS. Then, he explains various types of security and authentication options one by one. With the author’s experience and recommendation, this section is better than just introducing the name and description of each option, especially the author explains why and when you should use each option with the best practice. For example, the author describes how to pass a parameter value back to the application layer and then dynamically generate the SQL query, this is extremely useful for real world application development. The author then explains the Service Oriented architecture and nature of RS (parameter driven) repeatedly, with the use of many figures and diagrams , it made this chapter easy to read (A diagram is better than 1000 words). As a side note, the author mentions the advantages of using stored procedure in RS and SQL injection.
Chapter 4: Designing Reports
This chapter not only shows how to use the report designer and create report layout, but it also shows how to leverage RS to create (sub) reports with business intelligence and wisdom. The author also describes the report elements, sections (bands) and grouping so as to present data on a report. The author nearly describe all of the commonly use report layout in this section. Later, the author introduces some techniques in presenting data as in Excel or Pivot tables. With the importance of Excel and Pivot table, the author uses a step-by-step approach in showing how to construct a complex report at the end.
Chapter 5: Using expressions and functions
In this chapter, the author introduces expressions by showing the expression editor, its syntax, execution order and scope. The author also describes the limitation of current version (and bugs) of RS and resolutions by using expression (this is somehow similar to a Helper Function as in data web control in ASP.NET development, nice trick). Then, the author introduces the use of functions from both external and internal assemblies, such as aggregate calculation, sum, count, total, formatting, page number..etc. This section can be skipped in my opinion as the name of each function explains itself, or the author can describe the new syntax and functions in details. Finally, the author describes various available options for exporting report and uses an example to demonstrate how to create a localized report (localized report is useful as the board or regional directors are required to generate report in their own languages across regions in a real world scenario).
Chapter 6: Using Custom Code
Integrating RS with custom reporting code base on your own needs. The author shows the ability to create RS with custom code by porting a java base open source project, and then prepares a report with some sample codes. The intention is obvious but this is a bit overkill for general readers. The author also demonstrates how to use RS in an embedded code (private assembly as used in various RS application partners) and shared assembly environments. With the increasing popularity of RSS and blogging, author describes XML based report and shows an example of exporting RS to an RSS feed which is a brilliant demo and highlight the RSS schema and flexibility of RS export features.
Chapter 7: Managing the Reporting Services Environment
After showing how to create a RS, data connection, present data in RS and the basic concept of RS, the author changes the topic to a more advanced level and talks about managing a RS. The author drills down into the RS manager web application and explains the functions and features one by one carefully. The author describes (long waiting) caching features in RS and explains the internals and how to select the best practices for your own use. The author finally describes how to deploy and manage RS via Web services and WMI provider. These two sections are pretty short, maybe due to the fact that administrators will most likely to manage RS through the RS Manager Web application directly.
Chapter 8: Securing Reporting Services
The author explains in details for all approaches in securing RS, including authentication and authorization in RS. After describing the fact (>10 pages), the author shows the best practices in securing RS (5 pages only?!). Generally speaking, security is much more important than designing the report layout or retrieving data from data store, so more information or best practices about securing RS are appreciated.