ScreamCode.Reporting.Core
1.1.7
Use version 1.2.1 or later. All previous versions have critical bugs with static files, template loading, and admin portal embedding.
See the version list below for details.
dotnet add package ScreamCode.Reporting.Core --version 1.1.7
NuGet\Install-Package ScreamCode.Reporting.Core -Version 1.1.7
<PackageReference Include="ScreamCode.Reporting.Core" Version="1.1.7" />
<PackageVersion Include="ScreamCode.Reporting.Core" Version="1.1.7" />
<PackageReference Include="ScreamCode.Reporting.Core" />
paket add ScreamCode.Reporting.Core --version 1.1.7
#r "nuget: ScreamCode.Reporting.Core, 1.1.7"
#:package ScreamCode.Reporting.Core@1.1.7
#addin nuget:?package=ScreamCode.Reporting.Core&version=1.1.7
#tool nuget:?package=ScreamCode.Reporting.Core&version=1.1.7
ScreamCode.Reporting
Build faster. Report smarter.
A modular .NET 8 reporting engine with an embedded Blazor admin portal. Add powerful reporting capabilities to any ASP.NET Core application in minutes.
🚀 Quick Start
dotnet add package ScreamCode.Reporting.Core
dotnet add package ScreamCode.Reporting.Admin
dotnet add package ScreamCode.Reporting.Pdf
dotnet add package ScreamCode.Reporting.Excel
Program.cs
builder.Services
.AddScreamReporting(builder.Configuration)
.AddPdf()
.AddExcel()
.AddBuilder()
.AddTemplates()
.AddAdmin()
.AddDataProvider<YourReportDataProvider>();
var app = builder.Build();
await app.Services.InitializeScreamReportingAsync();
await app.Services.EnsureAdminDatabaseAsync();
app.UseStaticFiles();
app.UseAntiforgery();
app.MapBlazorHub();
var adminPath = builder.Configuration["ScreamReporting:AdminPath"] ?? "reportadmin";
app.MapFallbackToPage($"/{adminPath}/{{**path}}", "/_Host");
app.MapFallbackToPage($"/{adminPath}", "/_Host");
app.Run();
appsettings.json
{
"ScreamReporting": {
"LicenseKey": "",
"ApplicationName": "YourApp",
"AdminPath": "reportadmin",
"AdminAuth": {
"Enabled": true,
"Username": "admin",
"Password": "your-password",
"SessionTimeoutMinutes": 60
},
"Pdf": {
"DefaultOrientation": "Portrait",
"TimeoutMs": 30000
}
}
}
Implement IReportDataProvider
public class OrdersDataProvider : IReportDataProvider
{
public string EntityName => "orders";
public string DisplayName => "Orders";
public IReadOnlyList<ReportColumnDefinition> AvailableColumns =>
[
new() { Name = "Id", DisplayName = "Order ID", Type = "string" },
new() { Name = "CustomerName", DisplayName = "Customer", Type = "string" },
new() { Name = "Total", DisplayName = "Total", Type = "decimal" },
new() { Name = "CreatedAt", DisplayName = "Date", Type = "datetime" }
];
public IReadOnlyList<ReportFilterDefinition> AvailableFilters =>
[
new() { Name = "CreatedAt", DisplayName = "Date", Type = "daterange" }
];
public async Task<ReportTable> GetDataAsync(ReportBuilderRequest request, CancellationToken ct = default)
{
// Return your data here
}
public async Task<int> GetCountAsync(ReportBuilderRequest request, CancellationToken ct = default)
{
// Return count here
}
}
✨ Features
| Feature | Community | Professional | Enterprise |
|---|---|---|---|
| PDF generation | ✓ | ✓ | ✓ |
| Excel export | ✓ | ✓ | ✓ |
| Report Builder | ✓ | ✓ | ✓ |
| Max reports | 10 | 30 | Unlimited |
| Max templates | 5 | 10 | Unlimited |
| HTML Templates | 1 | 5 | 10 |
| Images in reports | ✗ | ✓ | ✓ |
| Charts | ✗ | ✓ | ✓ |
| Scheduler + Email | ✗ | Max 5 | Unlimited |
| Audit Trail | ✗ | 30 days | 365 days |
| Backup / Restore | ✗ | ✓ | ✓ |
| Digital Signature | ✗ | ✗ | ✓ |
| Watermark (Community) | ✓ | ✗ | ✗ |
| Price | Free | $149 | $299 |
30-day Professional trial included. No credit card required.
🔐 Authentication
Built-in auth (recommended for quick setup)
"AdminAuth": {
"Enabled": true,
"Username": "admin",
"Password": "your-secure-password"
}
External auth (use your own ASP.NET Identity, JWT, etc.)
app.MapFallbackToPage("/reportadmin/{**path}", "/_Host")
.RequireAuthorization("AdminRole");
"AdminAuth": {
"Enabled": false,
"ExternalAuthConfigured": true
}
📦 Packages
| Package | Description |
|---|---|
ScreamCode.Reporting.Core |
Core engine, licensing, interfaces |
ScreamCode.Reporting.Admin |
Embedded Blazor admin portal |
ScreamCode.Reporting.Pdf |
PDF generation via Playwright |
ScreamCode.Reporting.Excel |
Excel (.xlsx) export |
ScreamCode.Reporting.Builder |
Dynamic report builder |
ScreamCode.Reporting.Templates |
HTML template engine |
ScreamCode.Reporting.Audit |
Audit trail (Professional+) |
ScreamCode.Reporting.Scheduler |
Report scheduling (Professional+) |
🖥️ Chromium Setup (for PDF generation)
Run once after deployment:
.\ScreamCode-Install.ps1
Or manually:
.\playwright.ps1 install chromium
🌍 Localization
Built-in: English and Bosnian. Add any language by placing a JSON file in Localization/Languages/:
publish/
└── Localization/
└── Languages/
├── en.json
├── bs.json
└── de.json ← add your language
📄 License
MIT — free to use, modify and distribute.
🔗 Links
- 🌐 Website: screamcode.com
- 📖 Docs: screamcode.com/docs/reporting
- 💰 Pricing: screamcode.com/pricing
- 📧 Support: support@screamcode.com
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Options (>= 8.0.0)
- Microsoft.IdentityModel.JsonWebTokens (>= 8.17.0)
- System.Security.Cryptography.ProtectedData (>= 8.0.0)
NuGet packages (8)
Showing the top 5 NuGet packages that depend on ScreamCode.Reporting.Core:
| Package | Downloads |
|---|---|
|
ScreamCode.Reporting.Builder
Report builder module for ScreamCode.Reporting — dynamic query builder with filters, grouping, sorting and column selection. |
|
|
ScreamCode.Reporting.Templates
HTML template engine for ScreamCode.Reporting — render reports using customizable HTML templates with placeholder support. |
|
|
ScreamCode.Reporting.Audit
Audit trail module for ScreamCode.Reporting — track all report generation activity with configurable retention. Available in Professional and Enterprise tiers. |
|
|
ScreamCode.Reporting.Pdf
PDF generation module for ScreamCode.Reporting — high-fidelity PDF rendering using Playwright/Chromium with digital signature, QR code and watermark support. |
|
|
ScreamCode.Reporting.Scheduler
Scheduler module for ScreamCode.Reporting — automated report generation and email delivery on hourly, daily, weekly or monthly schedules. Available in Professional and Enterprise tiers. |
GitHub repositories
This package is not used by any popular GitHub repositories.