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.Viewerwith aLocalReportViewerBackendis enough. - A viewer page in Blazor WebAssembly:
ReportWright.Blazor.Viewerin the client project;ReportWright.AspNetCoreand 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.AspNetCoreand the providers. - A batch export or a scheduler:
ReportWright.Data.Abstractionswith a provider, plus DocWright'sDocWright.Reporting.Rdl,DocWright.Reporting.Exportand 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.