Table of Contents

Introduction to ReportWright

ReportWright puts SQL Server Reporting Services reports into a .NET application without a report server: a Blazor viewer, a Blazor designer, data providers that keep secrets on the server, and an ASP.NET Core host with a REST API. The engine that reads, runs, paginates and renders the reports is DocWright's reporting family; ReportWright never re-implements it.

What it does

  • Opens the files you have. RDL 2008, 2010 and 2016 and .rdlc, read losslessly and saved back in their own schema version. A report authored in Report Builder keeps every element ReportWright does not understand.
  • Shows them. The ReportViewer component in Blazor Server or WebAssembly, with parameters, toggles, interactive sort, drillthrough, bookmarks, document map, search, print and export. A REST API serves the same pages as HTML fragments to any client.
  • Edits them. The ReportDesigner component: textboxes, rectangles, lines, images and subreports; tables, matrices and lists with groups, totals and cell formatting; charts, sparklines, data bars, gauges, indicators and barcodes; a property grid and an expression editor. Every edit is one undo entry.
  • Feeds them. CSV, JSON file, REST JSON, XML, SQL Server and System.Data providers behind a host-owned resolver, so a report names a data source and the host says what it is.
  • Exports them. PDF, PDF/A, PNG, JPEG, DOCX, XLSX, CSV and text, from the viewer, from one REST call, or from a console program.

What it is built on

Every ReportWright package pins one version of the DocWright engine packages (DocWright.Reporting, .Rdl, .Viewer, .Export) from nuget.org. What a report may contain and how it renders is the engine's decision; What ReportWright supports lists what the pinned version draws and where it leaves a gap you will notice.

Where to go next

  1. Choose your packages, then install.
  2. Embed the viewer in a page, embed the designer, or export without a browser.
  3. The guides cover hosting, data providers, security, the designer's rules and migrating from Reporting Services.