J'ai étudié SSRS 2005/2008 au cours des dernières semaines et j'ai créé des rapports côté serveur. Pour certaines applications, un collègue m'a suggéré de consulter RDLC pour cette situation particulière. J'essaie maintenant de comprendre la principale différence entre RDL et RDLC.
La recherche de cette information produit au mieux une information fragmentée. J'ai appris que:
Mais je ne comprends toujours pas bien la relation entre le fichier RDLC et les autres systèmes associés (le serveur de rapports, la base de données source, le client).
Afin de bien comprendre les fichiers RDLC, j'aimerais savoir en quoi leur utilisation diffère des fichiers RDL et dans quelle situation on choisirait RDLC plutôt que RDL. Les liens vers des ressources sont également les bienvenus.
Un fil sur les forums ASP.NET aborde ce même problème. Cela m'a permis de mieux comprendre la question.
Une fonctionnalité de RDLC est qu'il peut être exécuté complètement côté client dans le contrôle ReportViewer.
Que cela soit un avantage ou un inconvénient dépend de l'application particulière.
Dans mon application, une instance de Reporting Services est néanmoins disponible et les données requises pour les rapports peuvent facilement être extraites d'une base de données. Reste-t-il une raison pour que je considère RDLC ou devrais-je simplement m'en tenir à RDL?
D'après mon expérience, il y a peu de choses à penser à ces deux choses:
I. Les rapports RDL sont généralement des rapports HOSTED. Cela signifie que vous devez implémenter le serveur SSRS. Ils constituent une extension intégrée de Visual Studio à partir de SQL Server pour le langage de génération de rapports. Lorsque vous installez SSRS, vous devez disposer d'un complément appelé "Business Intelligence Development Studio", qui est beaucoup plus facile à utiliser avec les rapports que sans ce dernier.
[~ # ~] r [~ # ~] eport
[~ # ~] d [~ # ~] efinition
[~ # ~] l [~ # ~] angauge
Avantages des rapports RDL:
Inconvénients:
II. Les rapports RDLC sont des rapports CLIENT CONTENUS qui ne sont pas hébergés nulle part. Le c supplémentaire dans le nom signifie 'Client'. Généralement, il s'agit d'une extension du langage RDL destinée à être utilisée uniquement dans les applications client Visual Studio. Il existe dans Visual Studio lorsque vous ajoutez un élément "reporting".
Avantages des rapports RDLC:
Inconvénients:
Honnêtement, j'aime les deux à des fins différentes. Si je veux envoyer quelque chose aux analystes qu'ils utilisent tout le temps et à Tweak pour les graphiques, les graphiques, les forages et les exportations vers Excel, j'utilise RDL et le site de SSRS s'occupe simplement de la gestion des distributions par courrier électronique. Si je veux une application qui a une section de rapport et que je sais que cette application est son propre module avec des règles et une gouvernance, j'utilise un RDLC et les paramètres sont plus petits et dictés par les décisions que l'utilisateur a prises avant de passer au rapport. client, ils se trouvent sur le site, puis ils choisissent généralement un laps de temps ou un type et rien de plus. Donc généralement un rapport complexe j'utiliserais RDL et pour quelque chose de simple j'utiliserais RDLC IMHO.
J'espère que ça aide.
Q: Quelle est la différence entre les formats RDL et RDLC?
R: Les fichiers RDL sont créés par la version SQL Server 2005 de Report Designer. Les fichiers RDLC sont créés par la version Visual Studio 2008 de Report Designer.
Les formats RDL et RDLC ont le même schéma XML. Toutefois, dans les fichiers RDLC, certaines valeurs (telles que le texte de la requête) sont autorisées à être vides, ce qui signifie qu'elles ne sont pas immédiatement prêtes à être publiées sur un serveur de rapports. Les valeurs manquantes peuvent être entrées en ouvrant le fichier RDLC à l'aide de la version SQL Server 2005 de Report Designer. (Vous devez d'abord renommer .rdlc en .rdl.)
Les fichiers RDL sont entièrement compatibles avec le runtime du contrôle ReportViewer. Toutefois, les fichiers RDL ne contiennent pas certaines informations indispensables à la conception du contrôle ReportViewer pour la génération automatique de code de liaison de données. En liant manuellement les données, les fichiers RDL peuvent être utilisés dans le contrôle ReportViewer. Nouveau! Voir aussi l'exemple de programme RDL Viewer.
Notez que le contrôle ReportViewer ne contient aucune logique pour la connexion à des bases de données ou l'exécution de requêtes. En séparant cette logique, ReportViewer a été rendu compatible avec toutes les sources de données, y compris les sources de données autres que de bases de données. Toutefois, cela signifie que lorsqu'un contrôle RDL est utilisé par le contrôle ReportViewer, les informations relatives à SQL contenues dans le fichier RDL sont simplement ignorées par le contrôle. Il incombe à l'application hôte de se connecter aux bases de données, d'exécuter des requêtes et de fournir des données au contrôle ReportViewer sous la forme de ADO.NET DataTables.
J'ai toujours pensé que la différence entre RDL et RDLC est que les RDL sont utilisés pour SQL Server Reporting Services et les RDLC sont utilisés dans Visual Studio pour les rapports côté client. L'implémentation et l'éditeur sont presque identiques. RDL signifie langage de définition de rapport et langage de définition de rapport RDLC côté client.
J'espère que ça aide.
D'après mon expérience, si vous avez besoin de performances élevées (cela dépend légèrement des spécifications de votre client) de rapports volumineux, utilisez rdlc. De plus, les rapports rdlc vous donnent un très large éventail de contrôle sur vos données. Vous pourrez peut-être vous épargner des déplacements inutiles dans la base de données, etc. en utilisant des rapports côté client. Dans le projet sur lequel je travaille actuellement, un rapport critique nécessite environ 2 minutes pour être rendu côté serveur et supprime à peu près le serveur de rapports auquel il accède pour cette période. En basculant sur le rendu côté client, nous constatons des performances beaucoup plus proches de 20 à 40 secondes sans charge sur le serveur de rapports et moins de bande passante utilisée car seuls les jeux de données sont en cours de téléchargement.
Votre kilométrage peut varier et je trouve que rdlc ajoute une complexité supplémentaire en termes de développement et de maintenance, en particulier lorsque votre rapport a été conçu comme un rapport côté serveur.
Certains de ces points ont été abordés ci-dessus, mais voici mes 2 centimes pour l'environnement VS2008.
RDL (Rapports à distance): expérience de développement bien meilleure, plus de flexibilité si vous devez utiliser des fonctionnalités avancées telles que la planification, la création de rapports ad hoc, etc.
RDLC (rapports locaux): Meilleur contrôle des données avant de les envoyer au rapport (il est plus facile de valider ou de manipuler les données avant de les envoyer au rapport). Déploiement beaucoup plus facile, pas besoin d'une instance de Reporting Services.
Une énorme réserve avec des rapports locaux est une fuite de mémoire connue qui peut affecter gravement les performances si vos clients exécutent de nombreux rapports volumineux. Cela est censé être traité avec la nouvelle version VS2010 du visualiseur de rapports.
Dans mon cas, comme nous avons une instance de Reporting Services disponible, je développe de nouveaux rapports en tant que RDL, puis les convertis en rapports locaux (ce qui est facile) et les déploie en tant que rapports locaux.
Tandis que je actuellement penche en faveur de RDL car il semble plus souple et plus facile à gérer, RDLC présente l'avantage de simplifier votre licence. Comme RDLC n’a pas besoin d’une instance de Reporting Services, vous n’avez pas besoin d’une licence Reporting Services pour l’utiliser.
Je ne sais pas si cela s'applique toujours aux versions les plus récentes de SQL Server, mais si vous avez choisi de placer les instances de base de données SQL Server et Reporting Services sur deux ordinateurs distincts, vous deviez disposer de deux licences SQL Server distinctes:
http://social.msdn.Microsoft.com/forums/en-US/sqlgetstarted/thread/82dd5acd-9427-4f64-aea6-511f09aac406/
Vous pouvez Bing consulter d'autres blogs et publications similaires concernant les licences de Reporting Services.
Si vous disposez d'une infrastructure de services de rapport, utilisez-la. Vous trouverez le développement de RDL un peu plus agréable. Vous pouvez prévisualiser le rapport, configurer facilement les paramètres, etc.
Pour VS2008, je pense que RDL vous offre de meilleures fonctionnalités d’édition que RDLC. Par exemple, je peux changer le gras en fonction de la quantité de texte sélectionnée dans une zone de texte avec RDL, alors qu’en RDLC ce n’est pas possible.
RDL: abcd efgh ijklmnop
RDLC: abcd efgh ijklmnop -ou- abcd efgh ijklmnop (sont vos seules options)
En effet, RDLC utilise un espace de noms/formatage antérieur à 2005, alors que RDL utilise 2008. Cela changera toutefois avec VS2010.
Si nous avons moins de rapports qui sont moins complexes et utilisés par les pages Web asp.net. Il vaut mieux utiliser rdlc, car nous pouvons éviter de maintenir des rapports sur une instance de RS. mais nous devons récupérer les données de la base de données manuellement et les lier à rdlc.
Inconvénients: concevoir rdlc dans Visual Studio est un peu difficile par rapport au concepteur SSRS.
Pro: La maintenance est facile. lors de l’exportation du rapport à partir de la page Web, nous avons observé une amélioration des performances par rapport aux rapports côté serveur.