J'ai étudié le SSRS 2005/2008 ces dernières semaines et j'ai créé des rapports côté serveur. Pour une application, un collègue a suggéré que je regarde RDLC pour cette situation particulière. J'essaie maintenant de comprendre la principale différence entre RDL et RDLC.
La recherche de ces informations produit au mieux des informations fragmentées. J'ai appris que:
- Les rapports RDLC ne stockent pas d'informations sur la façon d'obtenir des données.
- Les rapports RDLC peuvent être exécutés directement par le contrôle ReportViewer.
Mais je ne comprends toujours pas complètement 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 les ressources sont également les bienvenus.
Mettre à jour:
Un fil de discussion sur les forums ASP.NET traite de ce même problème. De là, j'ai acquis une meilleure compréhension de la question.
Une caractéristique de RDLC est qu'il peut être exécuté complètement côté client dans le contrôle ReportViewer.
- Cela supprime le besoin d'une instance Reporting Services et supprime même le besoin de toute connexion à la base de données, mais:
- Il ajoute l'exigence selon laquelle les données nécessaires dans le rapport doivent être fournies manuellement.
Que ce soit un avantage ou un inconvénient dépend de l'application particulière.
Dans mon application, une instance de Reporting Services est quand même disponible et les données requises pour les rapports peuvent facilement être extraites d'une base de données. Y a-t-il une raison pour moi d'envisager RDLC, ou devrais-je simplement m'en tenir à RDL?
List<T>
deMyEntity
) comme source pour les rapports à distance ( RDL ), pas RDLC ?J'ai toujours pensé que la différence entre RDL et RDLC est que RDL est utilisé pour SQL Server Reporting Services et RDLC est utilisé dans Visual Studio pour les rapports côté client. L'implémentation et l'éditeur sont presque identiques. RDL signifie
Report Defintion Language
et RDLCReport Definition Language Client-side
.J'espère que cela aide.
la source
D'après mon expérience, si vous avez besoin de hautes performances (cela dépend légèrement des spécifications de votre client) sur des rapports volumineux, optez pour rdlc. De plus, les rapports rdlc vous donnent une gamme très complète de contrôle sur vos données, vous pourrez peut-être vous épargner des voyages de base de données inutiles, etc. en utilisant des rapports côté client. Sur 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 qu'il frappe pendant cette période. En le basculant vers le rendu côté client, nous voyons 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 ensembles de données sont en cours de téléchargement.
Votre kilométrage peut varier, et je trouve que le développement et la maintenance de rdlc sont complexes, en particulier lorsque votre rapport a été conçu comme un rapport côté serveur.
la source
Certains de ces points ont été abordés ci-dessus, mais voici mes 2 cents pour l'environnement VS2008.
RDL (rapports à distance): bien meilleure expérience de développement, plus de flexibilité si vous avez besoin d'utiliser certaines fonctionnalités avancées telles que la planification, les rapports ad hoc, etc.
RDLC (Rapports locaux): Meilleur contrôle sur les données avant de les envoyer au rapport (plus facile à valider ou 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 mise en garde avec les rapports locaux est une fuite de mémoire connue qui peut gravement affecter les performances si vos clients exécutent de nombreux rapports volumineux. Ce problème est censé être résolu avec la nouvelle version VS2010 de la visionneuse de rapports.
Dans mon cas, puisque nous avons une instance de Reporting Services disponible, je développe de nouveaux rapports sous forme de RDL, puis je les convertis en rapports locaux (ce qui est facile) et les déploie en tant que rapports locaux.
la source
Si vous disposez d'une infrastructure de services de reporting, utilisez-la. Vous trouverez que le développement RDL est un peu plus agréable. Vous pouvez prévisualiser le rapport, configurer facilement les paramètres, etc.
la source
Bien que je penche actuellement vers RDL car il semble plus flexible et plus facile à gérer, RDLC a un avantage en ce sens qu'il semble simplifier vos licences. Étant donné que RDLC n'a pas besoin d'une instance Reporting Services, vous n'avez pas besoin d'une licence Reporting Services pour l'utiliser.
Je ne sais pas si cela s'applique toujours avec les nouvelles versions de SQL Server, mais à un moment donné, si vous avez choisi de placer les instances SQL Server Database et Reporting Services sur deux machines distinctes, vous deviez avoir deux licences SQL Server distinctes:
http://social.msdn.microsoft.com/forums/en-US/sqlgetstarted/thread/82dd5acd-9427-4f64-aea6-511f09aac406/
Vous pouvez Bing pour d'autres blogs et articles similaires concernant les licences Reporting Services.
la source
Pour VS2008, je pense que RDL vous offre de meilleures fonctionnalités d'édition que RDLC. Par exemple, je peux changer le gras sur une quantité sélectionnée de texte dans une zone de texte avec RDL, alors que dans RDLC, ce n'est pas possible.
RDL: abcd efgh ijklmnop
RDLC: abcd efgh ijklmnop -ou- abcd efgh ijklmnop (sont vos seules options)
Ceci est dû au fait que RDLC utilise un espace de noms / formatage antérieur de 2005, tandis que RDL utilise 2008. Cela changera cependant avec VS2010
la source
Si nous avons moins de rapports qui sont moins complexes et consommés par les pages Web asp.net. Il est préférable d'utiliser rdlc, car nous pouvons éviter de maintenir les rapports sur l'instance RS. mais nous devons récupérer les données de DB manuellement et les lier à rdlc.
Inconvénients: concevoir rdlc dans un studio visuel est peu difficile par rapport au concepteur SSrs.
Pro: La maintenance est facile. lors de l'exportation du rapport à partir de notre page, nous avons observé ce gain de performances par rapport aux rapports côté serveur.
la source
si vous souhaitez utiliser le rapport dans asp.net, utilisez .rdl si vous souhaitez utiliser / view dans le générateur de rapports / serveur de rapports, puis utilisez .rdlc simplement en convertissant le format manuellement, cela fonctionne
la source