Feature request: ship Radzen.Documents.Spreadsheet as a separate NuGet package (without Blazor dependencies)

Hi Radzen team,

First of all, thanks for RadzenSpreadsheet and especially for the server-side Radzen.Documents.Spreadsheet API. Being able to create and read .xlsx files without a third-party library or an Office installation is exactly what we need.

Our scenario

We'd like to use the Workbook API in backend code: report generation in background jobs and processing uploaded workbooks in application/service layers. These projects have no UI and intentionally don't reference ASP.NET Core Components.

The issue

As far as I can see, the document API lives in Radzen.Blazor.dll, so we have to reference the Radzen.Blazor package. That also pulls in Microsoft.AspNetCore.Components and Microsoft.AspNetCore.Components.Web, along with all UI components, into our backend assemblies. It works, but it breaks our layering (no UI dependencies below the presentation layer) and adds dependencies that the code using it doesn't need.


// Application layer: no UI here, but requires the Radzen.Blazor package

using Radzen.Documents.Spreadsheet;

var workbook = new Workbook();

var sheet = workbook.AddSheet("Report", 100, 10);

// ... fill cells, save to stream as .xlsx

Suggestion

Move Radzen.Documents.* into its own package (e.g. Radzen.Documents) without ASP.NET Core dependencies, and have Radzen.Blazor reference it. Existing users would keep getting everything through Radzen.Blazor, and server-only consumers could reference just the document API. One way to keep this non-breaking might be type forwarding ([TypeForwardedTo]) from Radzen.Blazor to the new assembly, but you know the internals far better than we do.

I think this would help anyone using the API in background services, Web APIs, Azure Functions or console tools, which is the use case your blog post highlights.

It would be great to hear whether this direction fits your plans.

Thanks!

Hi @Lars,

Thanks for the suggestion. Could you please log it as a feature request in our github repository? We will use it to monitor interest and decide whether to do it.

The thing is that it works today just fine in server-side project (we use it heavily in production ourselves). Yes, it brings other dependencies which is what is bothering you.

Doing it would probably introduce breaking changes and require us to maintain two packages instead of one. There are definitely pros and cons and we need some time to consider all options.

Thanks for the quick reply and for considering it! Good to hear you're using it heavily in production yourselves.

I've logged it as a feature request here: Feature request: ship Radzen.Documents as a separate NuGet package without ASP.NET Core dependencies · Issue #2753 · radzenhq/radzen-blazor · GitHub

I understand the concerns about breaking changes and maintaining two packages, so I've added a few thoughts on that to the issue.