Passer au contenu du pied de page
GUIDES DE MIGRATION

Comment migrer de SSRS à IronPDF en C#

Migrer de SSRSàIronPDF: Guide de migration complet en C

La migration de SQL Server Reporting Services (SSRS) versIronPDFtransforme votre flux de production de PDF d'une infrastructure lourde basée sur un serveur à une bibliothèque légère, en cours de processus, qui peut être intégrée directement dans n'importe quelle application .NET. Ce guide fournit un chemin de migration complet, étape par étape, qui élimine les dépendances de SQL Server, la surcharge du serveur de rapports et l'enfermement dans l'écosystème Microsoft.

Pourquoi migrer de SSRSvers IronPDF

Comprendre SSRS

SQL Server Reporting Services (SSRS) est la plateforme de reporting d'entreprise de Microsoft qui nécessite un investissement important en termes d'infrastructure. SSRSest une plateforme de reporting complète de Microsoft qui fournit une suite complète pour la création, le déploiement et la gestion de rapports, offrant à la fois des fonctionnalités de rapport riches et interactives. Développé dans le cadre de l'écosystème SQL Server, SSRSest étroitement intégré aux solutions de base de données de Microsoft.

Cependant, pour de nombreux scénarios de génération de PDF, l'infrastructure SSRSest excessive. Les principales raisons de migrer sont les suivantes

  1. Infrastructure lourde : Requiert la configuration de SQL Server, Report Server et IIS
  2. Microsoft Ecosystem Lock-in : lié aux licences SQL Server et Windows Server
  3. Déploiement complexe : Déploiement de rapports, configuration de la sécurité et gestion des abonnements
  4. Licences coûteuses : licences SQL Server, en particulier pour les fonctions d'entreprise
  5. Support Web limité : Difficulté d'intégration avec les frameworks SPA modernes
  6. Frais de maintenance : correctifs du serveur, maintenance de la base de données, gestion des rapports
  7. Pas d'option cloud native : Conçu pour une utilisation sur site, la prise en charge de l'informatique dématérialisée n'est pas évidente

Quand SSRSest excessif

Votre besoin Frais généraux SSRS
Générer des factures Serveur de rapport complet
Exporter des tableaux de données Licence SQL Server
Créer des PDF à partir de données Serveur Windows
Génération de documents simples Abonnements aux rapports

IronPDF permet de générer des PDF en cours de processus, sans aucune infrastructure de serveur.

Comparaison entre SSRSet IronPDF

Fonction SSRS IronPDF
Dépendance Requiert SQL Server Pas de dépendance spécifique à l'égard d'une base de données
Déploiement Basé sur le serveur Bibliothèque (intégrée dans les applications)
Intégration Intégration étroite avec Microsoft Fonctionne avec n'importe quelle source de données
Visualisation des données Options natives étendues Visualisations axées sur les PDF
Complexité Haut (configuration du serveur requise) Modéré à faible (configuration de la bibliothèque)
Coût Coût des licences SQL Server Coût de la licence par développeur
HTML à PDF Non Chromium complet
URL vers PDF Non Oui
Support CSS Limité CSS3 complet
JavaScript Non ES2024 complet

IronPDF, contrairement à SSRS, n'est pas lié à une base de données ou à un écosystème de serveur spécifique. Il fournit aux développeurs une bibliothèque flexible pour créer, éditer et manipuler dynamiquement des documents PDF directement en C#. Ce découplage par rapport à une infrastructure basée sur un serveur offre un avantage notable : il est simple et adaptable, et convient à un large éventail d'applications au-delà de la production de rapports.

Pour les équipes qui prévoient d'adopter .NET 10 et C# 14 d'ici 2025 et 2026,IronPDFfournit un moteur de rendu moderne Chromium qui élimine la complexité de l'infrastructure de SSRS.


Avant de commencer

Prérequis

  1. Environnement .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Accès NuGet : Capacité à installer des paquets NuGet
  3. Licence IronPDF : Obtenez votre clé de licence sur ironpdf.com

Modifications du paquet NuGet

# SSRShas no direct NuGet - it's server-based
# Remove any ReportViewer controls

dotnet remove package Microsoft.ReportingServices.ReportViewerControl.WebForms
dotnet remove package Microsoft.ReportingServices.ReportViewerControl.WinForms

# Install IronPDF
dotnet add package IronPdf
# SSRShas no direct NuGet - it's server-based
# Remove any ReportViewer controls

dotnet remove package Microsoft.ReportingServices.ReportViewerControl.WebForms
dotnet remove package Microsoft.ReportingServices.ReportViewerControl.WinForms

# Install IronPDF
dotnet add package IronPdf
SHELL

Configurationde la licence

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Référence API complète

Modifications de l'espace de nommage

// Before: SSRS
using Microsoft.Reporting.WebForms;
using Microsoft.Reporting.WinForms;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: SSRS
using Microsoft.Reporting.WebForms;
using Microsoft.Reporting.WinForms;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Mappages de l'API de base

Concept SSRS Équivalent d'IronPDF Notes
LocalReport ChromePdfRenderer Rendu de base
RapportServeur RenderUrlAsPdf() Rendu basé sur l'URL
fichiers .rdlc Modèles HTML/CSS Format du modèle
ReportParameter Interpolation de chaînes de caractères Paramètres
ReportDataSource Données C# + HTML Liaison de données
LocalReport.Render("PDF") RenderHtmlAsPdf() Sortie PDF
Sous-rapport PDF fusionnés Rapports imbriqués
URL du serveur de rapports Pas nécessaire Aucun serveur n'est nécessaire
Commande ReportViewer Contrôle Pas nécessaire Génération directe de PDF
Formats d'exportation Le PDF est natif Un résultat ciblé

Exemples de migration de code

Exemple 1 : Conversion HTML vers PDF

Avant (SSRS):

// SSRS- SQL Server Reporting Services
using System;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
using System.IO;

class SSRSHtmlToPdf
{
    static void Main()
    {
        // Create a ReportViewer instance
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;

        // Load RDLC report definition
        reportViewer.LocalReport.ReportPath = "Report.rdlc";

        // Add HTML content as a parameter or dataset
        var htmlContent = "<h1>Hello World</h1><p>This is HTML content.</p>";
        var param = new ReportParameter("HtmlContent", htmlContent);
        reportViewer.LocalReport.SetParameters(param);

        // Render the report to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;

        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF",
            null,
            out mimeType,
            out encoding,
            out fileNameExtension,
            out streams,
            out warnings);

        File.WriteAllBytes("output.pdf", bytes);
    }
}
// SSRS- SQL Server Reporting Services
using System;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
using System.IO;

class SSRSHtmlToPdf
{
    static void Main()
    {
        // Create a ReportViewer instance
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;

        // Load RDLC report definition
        reportViewer.LocalReport.ReportPath = "Report.rdlc";

        // Add HTML content as a parameter or dataset
        var htmlContent = "<h1>Hello World</h1><p>This is HTML content.</p>";
        var param = new ReportParameter("HtmlContent", htmlContent);
        reportViewer.LocalReport.SetParameters(param);

        // Render the report to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;

        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF",
            null,
            out mimeType,
            out encoding,
            out fileNameExtension,
            out streams,
            out warnings);

        File.WriteAllBytes("output.pdf", bytes);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Après (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class IronPdfHtmlToPdf
{
    static void Main()
    {
        // Create a ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();

        // Convert HTML string to PDF
        var htmlContent = "<h1>Hello World</h1><p>This is HTML content.</p>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);

        // Save the PDF file
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class IronPdfHtmlToPdf
{
    static void Main()
    {
        // Create a ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();

        // Convert HTML string to PDF
        var htmlContent = "<h1>Hello World</h1><p>This is HTML content.</p>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);

        // Save the PDF file
        pdf.SaveAs("output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cet exemple illustre la différence architecturale fondamentale. SSRSnécessite la création d'une instance ReportViewer, le chargement d'un fichier de définition de rapport .rdlc, la définition de paramètres, puis l'appel de LocalReport.Render("PDF")avec plusieurs paramètres out pour les métadonnées.

IronPDF utilise un ChromePdfRendereravec RenderHtmlAsPdf()en seulement trois lignes de code. Aucun fichier de définition de rapport, aucun objet de paramètre, aucune manipulation de métadonnées n'est requise. Consultez la documentation HTML vers PDF pour des exemples complets.

Exemple 2 : URL vers PDF avec en-têtes et pieds de page

Avant (SSRS):

// SSRS- SQL Server Reporting Services
using System;
using System.IO;
using System.Net;
using Microsoft.Reporting.WebForms;

class SSRSUrlToPdf
{
    static void Main()
    {
        // Download HTML content from URL
        string url = "https://example.com";
        string htmlContent;

        using (var client = new WebClient())
        {
            htmlContent = client.DownloadString(url);
        }

        // Create RDLC report with header/footer configuration
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        reportViewer.LocalReport.ReportPath = "WebReport.rdlc";

        // Set parameters for header and footer
        var parameters = new ReportParameter[]
        {
            new ReportParameter("HeaderText", "Company Report"),
            new ReportParameter("FooterText", "Page " + DateTime.Now.ToString()),
            new ReportParameter("HtmlContent", htmlContent)
        };
        reportViewer.LocalReport.SetParameters(parameters);

        // Render to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;

        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF", null, out mimeType, out encoding,
            out fileNameExtension, out streams, out warnings);

        File.WriteAllBytes("webpage.pdf", bytes);
    }
}
// SSRS- SQL Server Reporting Services
using System;
using System.IO;
using System.Net;
using Microsoft.Reporting.WebForms;

class SSRSUrlToPdf
{
    static void Main()
    {
        // Download HTML content from URL
        string url = "https://example.com";
        string htmlContent;

        using (var client = new WebClient())
        {
            htmlContent = client.DownloadString(url);
        }

        // Create RDLC report with header/footer configuration
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        reportViewer.LocalReport.ReportPath = "WebReport.rdlc";

        // Set parameters for header and footer
        var parameters = new ReportParameter[]
        {
            new ReportParameter("HeaderText", "Company Report"),
            new ReportParameter("FooterText", "Page " + DateTime.Now.ToString()),
            new ReportParameter("HtmlContent", htmlContent)
        };
        reportViewer.LocalReport.SetParameters(parameters);

        // Render to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;

        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF", null, out mimeType, out encoding,
            out fileNameExtension, out streams, out warnings);

        File.WriteAllBytes("webpage.pdf", bytes);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Après (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class IronPdfUrlToPdf
{
    static void Main()
    {
        // Create a ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();

        // Configure rendering options with header and footer
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Company Report</div>"
        };

        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages} - " + DateTime.Now.ToString("MM/dd/yyyy") + "</div>"
        };

        // Convert URL to PDF
        string url = "https://example.com";
        var pdf = renderer.RenderUrlAsPdf(url);

        // Save the PDF file
        pdf.SaveAs("webpage.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class IronPdfUrlToPdf
{
    static void Main()
    {
        // Create a ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();

        // Configure rendering options with header and footer
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Company Report</div>"
        };

        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages} - " + DateTime.Now.ToString("MM/dd/yyyy") + "</div>"
        };

        // Convert URL to PDF
        string url = "https://example.com";
        var pdf = renderer.RenderUrlAsPdf(url);

        // Save the PDF file
        pdf.SaveAs("webpage.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

SSRS ne peut pas convertir directement les URL en PDF. Vous devez télécharger manuellement le contenu HTML avec WebClient.DownloadString(), créer un fichier de rapport .rdlc distinct, transmettre le texte HTML et le texte d'en-tête/pied de page sous forme de tableaux ReportParameter, puis effectuer le rendu avec la signature complexe de la méthode Render().

Le RenderUrlAsPdf()d'IronPDF prend en charge l'ensemble du processus en un seul appel. Les en-têtes et les pieds de page sont configurés avec des objets HtmlHeaderFooter qui prennent en charge l'intégralité du HTML/CSS et des caractères génériques tels que {page} et {total-pages}. Pour en savoir plus, consultez nos tutoriels.

Exemple 3 : Rapport basé sur une base de données

Avant (SSRS):

// SSRS- SQL Server Reporting Services
using System;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
using System.IO;

class SSRSDatabaseReport
{
    static void Main()
    {
        // Create a ReportViewer instance
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        reportViewer.LocalReport.ReportPath = "SalesReport.rdlc";

        // Create database connection and fetch data
        string connString = "Server=localhost;Database=SalesDB;Integrated Security=true;";
        using (var connection = new SqlConnection(connString))
        {
            var adapter = new SqlDataAdapter("SELECT * FROM Sales", connection);
            var dataSet = new DataSet();
            adapter.Fill(dataSet, "Sales");

            // Bind data to report
            var dataSource = new ReportDataSource("SalesDataSet", dataSet.Tables[0]);
            reportViewer.LocalReport.DataSources.Clear();
            reportViewer.LocalReport.DataSources.Add(dataSource);
        }

        // Render to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;

        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF", null, out mimeType, out encoding,
            out fileNameExtension, out streams, out warnings);

        File.WriteAllBytes("sales-report.pdf", bytes);
    }
}
// SSRS- SQL Server Reporting Services
using System;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
using System.IO;

class SSRSDatabaseReport
{
    static void Main()
    {
        // Create a ReportViewer instance
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        reportViewer.LocalReport.ReportPath = "SalesReport.rdlc";

        // Create database connection and fetch data
        string connString = "Server=localhost;Database=SalesDB;Integrated Security=true;";
        using (var connection = new SqlConnection(connString))
        {
            var adapter = new SqlDataAdapter("SELECT * FROM Sales", connection);
            var dataSet = new DataSet();
            adapter.Fill(dataSet, "Sales");

            // Bind data to report
            var dataSource = new ReportDataSource("SalesDataSet", dataSet.Tables[0]);
            reportViewer.LocalReport.DataSources.Clear();
            reportViewer.LocalReport.DataSources.Add(dataSource);
        }

        // Render to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;

        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF", null, out mimeType, out encoding,
            out fileNameExtension, out streams, out warnings);

        File.WriteAllBytes("sales-report.pdf", bytes);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Après (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Data;
using System.Data.SqlClient;
using System.Text;

class IronPdfDatabaseReport
{
    static void Main()
    {
        // Create database connection and fetch data
        string connString = "Server=localhost;Database=SalesDB;Integrated Security=true;";
        var dataTable = new DataTable();

        using (var connection = new SqlConnection(connString))
        {
            var adapter = new SqlDataAdapter("SELECT * FROM Sales", connection);
            adapter.Fill(dataTable);
        }

        // Build HTML table from data
        var htmlBuilder = new StringBuilder();
        htmlBuilder.Append("<h1>Sales Report</h1><table border='1'><tr>");

        foreach (DataColumn column in dataTable.Columns)
            htmlBuilder.Append($"<th>{column.ColumnName}</th>");
        htmlBuilder.Append("</tr>");

        foreach (DataRow row in dataTable.Rows)
        {
            htmlBuilder.Append("<tr>");
            foreach (var item in row.ItemArray)
                htmlBuilder.Append($"<td>{item}</td>");
            htmlBuilder.Append("</tr>");
        }
        htmlBuilder.Append("</table>");

        // Convert to PDF
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
        pdf.SaveAs("sales-report.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Data;
using System.Data.SqlClient;
using System.Text;

class IronPdfDatabaseReport
{
    static void Main()
    {
        // Create database connection and fetch data
        string connString = "Server=localhost;Database=SalesDB;Integrated Security=true;";
        var dataTable = new DataTable();

        using (var connection = new SqlConnection(connString))
        {
            var adapter = new SqlDataAdapter("SELECT * FROM Sales", connection);
            adapter.Fill(dataTable);
        }

        // Build HTML table from data
        var htmlBuilder = new StringBuilder();
        htmlBuilder.Append("<h1>Sales Report</h1><table border='1'><tr>");

        foreach (DataColumn column in dataTable.Columns)
            htmlBuilder.Append($"<th>{column.ColumnName}</th>");
        htmlBuilder.Append("</tr>");

        foreach (DataRow row in dataTable.Rows)
        {
            htmlBuilder.Append("<tr>");
            foreach (var item in row.ItemArray)
                htmlBuilder.Append($"<td>{item}</td>");
            htmlBuilder.Append("</tr>");
        }
        htmlBuilder.Append("</table>");

        // Convert to PDF
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
        pdf.SaveAs("sales-report.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

SSRS nécessite un fichier de rapport .rdlc préconçu ("SalesReport.rdlc"), le remplissage d'un DataSet, la création d'un ReportDataSourceavec un nom spécifique ("SalesDataSet") qui doit correspondre à la définition du rapport, l'effacement des sources de données existantes, l'ajout de la nouvelle source de données, puis le rendu.

IronPDF utilise votre code d'accès aux données existant (même schéma SqlDataAdapter), puis construit le HTML de manière dynamique avec StringBuilder. Vous avez un contrôle total sur la mise en page à l'aide de HTML/CSS standard - aucun fichier de définition de rapport propriétaire n'est requis.


Comparaison des fonctionnalités

Fonction SSRS IronPDF
Infrastructure
Serveur requis Oui (Report Server) Non
Licence SQL Server Les exigences sont les suivantes Pas nécessaire
Serveur Windows Les exigences sont les suivantes Toutes les plates-formes
Base de données requise Oui (ReportServer DB) Non
Développement
Concepteur visuel Oui (.rdlc) Éditeurs HTML
Format du modèle RDLC/RDL HTML/CSS/Razor
Sources de données DSN intégré Toutes les données C#
Rendu
HTML vers PDF Non Chromium complet
URL vers PDF Non Oui
Support CSS Limité CSS3 complet
JavaScript Non ES2024 complet
Graphiques Intégré Via les bibliothèques JS
Déploiement
Déploiement du rapport Au serveur Avec l'app
Configuration Complexe Simple
Entretien Haut Faible

Problèmes de migration courants

Édition 1 : Définitions des rapports RDLC

SSRS: Utilise le format XML propriétaire .rdlc.

Solution: Convertir en modèles HTML :

  1. Ouvrir .rdlc dans Visual Studio
  2. Documenter la structure de la mise en page
  3. Recréer en HTML/CSS
  4. Utiliser Razor pour la liaison de données

Edition 2 : Sources de données partagées

SSRS:Chaînes de connexion dans Report Server.

Solution: Utilisez la couche d'accès aux données de votre application :

var data = await _dbContext.Sales.ToListAsync();
// Then bind to HTML template
var data = await _dbContext.Sales.ToListAsync();
// Then bind to HTML template
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Sujet 3 : Interface utilisateur des paramètres de rapport

SSRS:Intégration d'invites de paramètres.

Solution: Construisez une interface utilisateur paramétrée dans votre application :

// Your own parameter form, then:
var pdf = GenerateReport(startDate, endDate, region);
// Your own parameter form, then:
var pdf = GenerateReport(startDate, endDate, region);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Numéro 4 : Abonnements/Rapports programmés

SSRS: Moteur d'abonnement intégré.

Solution: Utiliser un cadre de travail en arrière-plan :

// Using Hangfire or similar
RecurringJob.AddOrUpdate("weekly-report",
    () => GenerateAndEmailReport(), Cron.Weekly);
// Using Hangfire or similar
RecurringJob.AddOrUpdate("weekly-report",
    () => GenerateAndEmailReport(), Cron.Weekly);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Liste de contrôle de la migration

Pré-migration

  • [Inventaire de tous les rapports SSRS(fichiers .rdlc)
  • [Documenter les sources de données et les connexions
  • [La traduction doit rester professionnelle, en préservant la précision technique tout en expliquant les caractéristiques et les avantages de ces outils de développement
  • [Liste des paramètres de rapport pour chaque rapport
  • [Les horaires d'abonnement aux notes
  • [ ] Obtenir la clé de licenceIronPDFà partir de ironpdf.com

Mises à jour du code

  • [Supprimer les paquets ReportViewer
  • [Installer le paquet IronPdf NuGet
  • [Convertir les fichiers .rdlc en modèles HTML
  • [Remplacer LocalReportpar ChromePdfRenderer
  • [Remplacer ReportDataSourcepar des données C# + des modèles HTML
  • [Remplacer ReportParameterpar une interpolation de chaînes de caractères
  • [Remplacer LocalReport.Render("PDF")par RenderHtmlAsPdf()
  • [ ] Mettre en œuvre des en-têtes/pieds de page avec HtmlHeaderFooter
  • [Ajouter l'initialisation de la licence au démarrage de l'application

Infrastructure

  • plan Report Server decommission [ ] Plan Report Server decommission
  • [Migrer les abonnements vers un planificateur de tâches (Hangfire, etc.)
  • [Mise à jour des scripts de déploiement

Testing

  • [ ] Comparer visuellement les sorties PDF
  • [Vérifier l'exactitude des données
  • [Test de la pagination
  • [Vérifier tous les paramètres
  • [Test de performance

Conclusion

Lorsqu'il s'agit de choisir entre SSRSet IronPDF, la décision dépend en grande partie des besoins spécifiques du projet et de la pile technologique existante. SSRSest un excellent choix pour les organisations fortement investies dans l'environnement Microsoft et qui recherchent une solution complète pour exploiter les données directement à partir de SQL Server pour la création de rapports.

À l'inverse,IronPDFse distingue par sa facilité d'utilisation et sa flexibilité, s'adaptant aux projets qui nécessitent une génération dynamique de PDF sans les frais généraux d'un serveur de reporting. Sa capacité à s'intégrer de manière transparente à n'importe quelle source de données et l'accent mis sur les fonctionnalités PDF en font un outil polyvalent pour les développeurs qui cherchent à améliorer leurs applications C# avec des capacités de documents riches.

Les principaux changements apportés à cette migration sont les suivants :

  1. Infrastructure: Report Server requis → Pas de serveur nécessaire
  2. Modèles : Fichiers propriétaires .rdlc → HTML/CSS standard
  3. Liaison de données : ReportDataSource→ données C# + interpolation de chaînes de caractères
  4. Paramètres : Tableaux de paramètres de rapport → Variables C# standard
  5. Rendu : LocalReport.Render("PDF")renderer.RenderHtmlAsPdf()
  6. URL vers PDF: Téléchargement manuel + rapport → Native RenderUrlAsPdf()
  7. Headers/Footers : Paramètres de rapport → HtmlHeaderFooter avec {page} placeholders
  8. Méthode d'enregistrement : File.WriteAllBytes()pdf.SaveAs()
  9. Abonnements : Moteur intégré → Planificateur de tâches (Hangfire, etc.)
  10. Licensing : SQL Server + Report Server → Paquet NuGet simple

Explorez la documentation complète IronPDF, tutoriel, et référence API pour accélérer votre migration vers SSRS.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite