A ReportViewer and RDLC alternative for .NET 8, 9 and 10
RDLC reports and the ReportViewer control have printed the invoices, statements and lists of many .NET applications for years. They still work, as long as the application stays on .NET Framework. Moving it to .NET 8, 9 or 10, to ASP.NET Core or to a Linux container is where the reports get in the way. This page sets out where ReportViewer stands today, the realistic options, and how Tagua fits among them.
Where ReportViewer stands
Section titled “Where ReportViewer stands”As of September 2026:
- Microsoft’s ReportViewer packages, for Windows Forms and Web Forms, target .NET Framework only. The latest version, 150.1652.0, dates from June 2024.
- Microsoft’s documentation covers those two controls, on .NET Framework 4.6 or later. It offers no ReportViewer for ASP.NET Core or .NET 5 and later, and no way to render RDLC to PDF without the control, on Linux or elsewhere.
- The RDLC designer is still maintained: the Report Designer extension supports Visual Studio 2022 and 2026. So reports can still be designed; what is missing is somewhere modern to run them.
Microsoft has not published a plan for RDLC on modern .NET.
Your options
Section titled “Your options”| Option | What it means |
|---|---|
| Stay on .NET Framework | It keeps working, on Windows. The reports tie the application, or the part of it that prints, to .NET Framework and Windows. |
| A community port | ReportViewerCore runs the ReportViewer engine on .NET 8 to 10. Its README lists the limits: PDF rendering measures fonts with a Windows-only component, images break on other platforms from .NET 7, there is no web viewer, and it warns that redistributing a modified Microsoft product may not be legal. |
| A report server | Publish the reports to SQL Server Reporting Services or Power BI Report Server and call it. That is a Windows server to run and license, and no new SSRS version follows SSRS 2022: see the SSRS page. |
| Rewrite them | Rebuild each report in another reporting tool or PDF library. It works, and it is the slow way: every report is redone by hand, and the ones in code are harder to change later. |
| Convert them to Tagua | tagua import converts each RDLC file into a Tagua template, which renders in any .NET 8 to 10 application, on Windows, Linux or macOS, in a container, with native AOT. |
What converting to Tagua keeps
Section titled “What converting to Tagua keeps”tagua import reads RDLC and RDL files (RDL 2005 to 2016) and writes a template that loads and renders straight
away, with a list of whatever needs a second look. Nothing is dropped silently.
| In the RDLC report | In the Tagua template |
|---|---|
| Datasets and their fields, report parameters | data with typed fields, parameters with their prompts and defaults |
| Page size, margins, language | page and culture |
| Page header and footer, text boxes, images, lines, rectangles | Bands with the same items, at the same positions, with their fonts, colours, borders and formats |
| Tables and lists, with several detail rows, row groups, group headers and footers, totals | Tables with their own groups and subtotals, and the report’s groups with their bands and page breaks |
| Matrices (column groups) | matrix, with its row and column groups and totals |
| Charts: column, bar, line, area, pie, doughnut | chart, with its series, aggregates, labels and legend |
| Subreports | subreport, with its parameters |
Visual Basic expressions: fields, parameters, aggregates, IIf, formatting, string, date and math functions |
Tagua expressions |
Conditional styles: Color = IIf(Fields!Amount.Value < 0, "Red", "Black"), zebra stripes |
Conditional styles (when) |
Custom code becomes a Visual Basic class your application builds and registers. What does not convert (Lookup,
Previous and a few more) is left as a visible [RDLC …] placeholder and listed, so a person can finish it. The migration guide has the full list.
Tested on real reports. Of about 4,800 RDLC reports from public .NET projects on GitHub, all but two convert and render without an error, and 71% need nothing reviewed; 96% need five items or fewer. How it was measured.
What you gain
Section titled “What you gain”- Modern .NET everywhere. Tagua runs on .NET 10, in ASP.NET Core, workers and Linux containers, and compiles with native AOT. Rendering needs no Windows components.
- Standards that RDLC never produced. One line in the template makes the PDF accessible (PDF/UA), archival (PDF/A) or a Factur-X invoice. The same report also exports to Excel with real numbers.
- Templates you can read. A template is YAML: it reviews in a pull request, diffs cleanly, and previews as you edit.
- No server. Reports render inside your application, from rows you pass in memory or straight from a database reader.
Converting a report
Section titled “Converting a report”dotnet tool install --global Tagua.Clitagua import Invoice.rdlctagua render Invoice.report.yaml --data invoice.json --out Invoice.pdfFor an application’s whole set of reports, give tagua import the folder: it converts them all and writes
tagua-import-summary.md, with how many need nothing reviewed and what the others need, report by report.
tagua import Reports --out convertedThe migration guide walks through a real report: converting it, reviewing the list, and rendering it from C#. Two complete examples show a sales invoice and a sales matrix converted and rendered.
Sources
Section titled “Sources”Checked on 25 September 2026.
- Microsoft.ReportingServices.ReportViewerControl.Winforms and .WebForms on NuGet: .NET Framework targets, version 150.1652.0 of June 2024.
- Integrating Reporting Services using the ReportViewer controls, Microsoft Learn.
- Microsoft RDLC Report Designer 2022+, Visual Studio Marketplace: version 18.0.0, September 2025, for Visual Studio 2022 and 2026.
- ReportViewerCore, its README; and ReportViewerCore.NETCore on NuGet.