Table of Contents

Choose your packages

ReportWright ships as twelve packages so a page takes only what it uses. All of them share one version and pin the same DocWright engine version.

Package What it holds Target frameworks
ReportWright.Blazor.Viewer The ReportViewer component, its state, toolbar and backends (LocalReportViewerBackend, HttpReportViewerBackend) net8.0, net10.0
ReportWright.Blazor.Designer The ReportDesigner component, its surface, panes, dialogs and backends (LocalReportDesignerBackend, HttpReportDesignerBackend) net8.0, net10.0
ReportWright.Blazor.Server AddReportWrightComponents: the host's services plus per-circuit viewer and designer backends for Blazor Server, which ask your ReportPermissions about the signed-in user net8.0, net10.0
ReportWright.Blazor What both components share: the icon sprite, theme tokens, strings, the parameter bar, the JavaScript module net8.0, net10.0
ReportWright.Design The command layer under the designer: reversible commands over the report's element tree, undo, descriptors, the property and function catalogues, Tablix and visual builders and editors. Runs under WebAssembly netstandard2.0, net8.0, net10.0
ReportWright.AspNetCore MapReportWright, the REST API, ReportStore, ReportPermissions, the export registry net8.0, net10.0
ReportWright.Data.Abstractions The data seam: DataSourceProvider, DataSourceResolver, the router, the guard, client-facing metadata netstandard2.0, net8.0, net10.0
ReportWright.Data.Csv, .Json, .Xml, .SqlServer, .SystemData One provider each: CSV files, JSON files and REST endpoints, XML, SQL Server and Azure SQL, DataTable/IDataReader/objects net8.0, net10.0

By scenario

  • A viewer or designer page in Blazor Server: ReportWright.Blazor.Server (it brings the host and both components) plus the providers your reports' data sources need. For a page with no store, permissions or REST API, ReportWright.Blazor.Viewer with a LocalReportViewerBackend is enough.
  • A viewer page in Blazor WebAssembly: ReportWright.Blazor.Viewer in the client project; ReportWright.AspNetCore and the providers in the server project, which serves dataset rows to the browser.
  • A designer page: add ReportWright.Blazor.Designer; the designer previews through the viewer.
  • A REST API for a non-Blazor client: ReportWright.AspNetCore and the providers.
  • A batch export or a scheduler: ReportWright.Data.Abstractions with a provider, plus DocWright's DocWright.Reporting.Rdl, DocWright.Reporting.Export and a renderer package; no Blazor, no host.

The engine packages (DocWright.Reporting and friends) come in transitively at the pinned version; you do not add them yourself unless a batch job uses them directly.