Improving Performance Of Reports in ASP.NET 4.0 and 4.5 Applications

Labels
AJAX(112) App Studio(7) Apple(1) Application Builder(245) Application Factory(207) ASP.NET(95) ASP.NET 3.5(45) ASP.NET Code Generator(72) ASP.NET Membership(28) Azure(18) Barcode(2) Barcodes(3) BLOB(18) Business Rules(1) Business Rules/Logic(140) BYOD(13) Caching(2) Calendar(5) Charts(29) Cloud(14) Cloud On Time(2) Cloud On Time for Windows 7(2) Code Generator(54) Collaboration(11) command line(1) Conflict Detection(1) Content Management System(12) COT Tools for Excel(26) CRUD(1) Custom Actions(1) Data Aquarium Framework(122) Data Sheet(9) Data Sources(22) Database Lookups(50) Deployment(22) Designer(177) Device(1) DotNetNuke(12) EASE(20) Email(6) Features(101) Firebird(1) Form Builder(14) Globalization and Localization(6) How To(1) Hypermedia(2) Inline Editing(1) Installation(5) JavaScript(20) Kiosk(1) Low Code(3) Mac(1) Many-To-Many(4) Maps(6) Master/Detail(36) Microservices(4) Mobile(63) Mode Builder(3) Model Builder(3) MySQL(10) Native Apps(5) News(18) OAuth(9) OAuth Scopes(1) OAuth2(13) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(11) PKCE(2) Postgre SQL(1) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(183) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(81) SharePoint(12) SPA(6) SQL Anywhere(3) SQL Server(26) SSO(1) Stored Procedure(4) Teamwork(15) Tips and Tricks(87) Tools for Excel(2) Touch UI(93) Transactions(5) Tutorials(183) Universal Windows Platform(3) User Interface(338) Video Tutorial(37) Web 2.0(100) Web App Generator(101) Web Application Generator(607) Web Form Builder(40) Web.Config(9) Workflow(28)
Archive
Blog
Friday, August 15, 2014PrintSubscribe
Improving Performance Of Reports in ASP.NET 4.0 and 4.5 Applications

Microsoft Report Viewer is the lightweight reporting engine used by generated apps to produce data reports in PDF, Word, Excel, and TIFF format. A generated app creates an in-memory table of data sorted and filtered according to the end user criteria. The data table is passed to Report Viewer to produce a report. The design template of the report is either created on-the-fly by the application framework or supplied by a developer at design time.

Report Viewer allows including formulas written in Visual Basic in the definitions of property expressions in various elements of a report template. The report formulas from the template are compiled to executable code by Report Viewer. If an ASP.NET web application tries to create a  report with the help of Microsoft Report Viewer, then certain security requirements must be satisfied. The formulas compiled by Report Viewer must run in “sandbox” environment.

ASP.NET security configuration has changed starting with ASP.NET 4.0. Now the sandbox of Report Viewer is required to jump through many hoops in order to produce a report. This results in poor performance of reports  on large datasets requiring significantly more time to complete rendering.

A simple solution exists to overcome this problem in an app created with Code On Time.

1) Select the project name on the start page of the app generator and choose Settings.

2) Proceed to Web Server Configuration and paste the following snippet into Web.Config modification instructions box:

AppendChild: /configuration/system.web

<trust legacyCasModel="true"/>

3) Click Finish and regenerate the project. A new <trust…/> entry will be created in the configuration file of application.

Now the reporting performance will become significantly improved.