


Есть ли аналог ReportViewer для C# .NET выше 4 версии?
Пишу C# WinForms [EF-framework, ADO.NET ] + MS SQL Server приложение с .NET версии 8.0 в Visual Studio 2022. В техническом задании обязательно необходимо делать отчеты и отправлять их на печать, в примерах показана работа с ReportViewer, но он не работает с версиями .NET выше 4.
Переписывать приложение не хочется, уже написана большая часть репозиториев, сервисов, фактори интерфейсы с реализацией их методов и многое другое.
Поэтому вопрос: Существует ли удобный аналог ReportViewer'а для .NET 8 и выше?
Для .NET Core и для .NET 5+ нет аналогов ReportViewer. Сам по себе ReportViewer относится к WinForms, а WinForms сейчас никак не развивается. Ну практически не развивается. Печально еще то, что нет аналогов и для WPF. Но как вам уже написали такие контролы есть у DevExpress, Telerik и FastReport. Но как правило они платные. А если не хотите покупать, то можете сами выкрутиться. То есть вы можете создать сборку на .NET Framework 4.х, внутри нее создать User Control с формой и ReportViewer. Зарегестрируйте интерфейс контрола через ComVisible(true) и подключайте ее к себе в проект как COM-библиотеку. 100% такое заработает. Через обычную рефлексию Assembly.LoadFrom врядли взлетит, потому что для .NET Framework и для .NET 5+ разный CLR-рантайм, поэтому можете нарваться на исключение вроде FileLoadException, но если зарегестрируете как COM, то будет работать. Но опять же только в среде Windows.
DevExpress поддерживает даже .net 9
Всего $799.99 и пользуйся на здоровье.