Quand utiliser RDLC sur les rapports RDL?
j'ai étudié SSRS 2005 / 2008 au cours des dernières semaines et j'ai créé quelques rapports côté serveur. Pour certaines applications, un collègue a suggéré que je me penche sur 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 de l'information fragmentée au mieux. J'ai appris que:
- les rapports RDLC ne contiennent pas d'informations sur la façon dont pour obtenir les données.
- les rapports RDLC peuvent être exécutés directement par le contrôle ReportViewer.
mais je ne comprends toujours pas parfaitement la relation entre le fichier RDLC et les autres systèmes connexes (Le serveur de rapports, la base de données source, le client).
afin d'avoir une bonne compréhension des fichiers RDLC, je voudrais savoir comment leur utilisation diffère des fichiers RDL et dans quelle situation on choisirait RDLC plutôt que RDL. Des liens vers d' des ressources sont également les bienvenus.
mise à jour:
Un thread sur le ASP.NET les forums de traite du même sujet. J'en ai tiré 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 la nécessité d'une instance de Reporting Services, et même supprime la nécessité d'une quelconque connexion à une base de données, mais:
- il ajoute l'exigence que les données nécessaires dans le rapport doivent être fournies manuellement.
Si c'est un avantage ou un inconvénient dépend de l'application.
dans mon application, une instance de services de rapports est disponible de toute façon et les données requises pour les rapports peuvent facilement être extraites d'une base de données. Est-il y a-t-il une raison pour que je considère RDLC, ou devrais-je simplement rester avec RDL?
10 réponses
D'après mon expérience, il y a peu de choses à penser sur les deux choses:
les rapports I. RDL sont généralement des rapports hébergés. Cela signifie que vous devez implémenter SSRS Server. Ils sont une extension intégrée de Visual Studio à partir de SQL Server pour la langue de reportage. Lorsque vous installez SSRS vous devez avoir un add sur appelé "Business Intelligence Development Studio" qui est beaucoup plus facile à travailler avec les rapports que sans elle.
R apport
D efinition
L angauge
"151900920 des" Prestations de rapports RDL:- vous pouvez héberger les rapports dans un environnement qui offre des services pour vous.
- vous pouvez configurer la sécurité sur un élément ou hériter le niveau pour gérer la sécurité comme un concept autonome
- vous pouvez configurer le service pour envoyer des e-mails (à condition que vous ayez un serveur SMTP auquel vous avez accès) et enregistrer les fichiers sur les horaires
- vous avez une base de données généralement appelée 'ReportServer' vous pouvez demander des informations sur les rapports une fois publiés.
- vous pouvez accéder à ces rapports encore par 'ReportViewer' dans une application client écrite en ASP.NET, WPF (with a winform control bleh!), ou Winforms in .NET using ' ProcessingMode.De distance".
- vous pouvez définir des paramètres qu'un utilisateur peut voir et utiliser pour gagner plus de flexibilité.
- vous pouvez configurer des parties d'un rapport à utiliser pour les chaînes de connexion comme 'sources de données' ainsi qu'une requête sql, xml, ou d'autres ensembles de données comme un 'ensemble de données'. Ces pièces et d'autres peuvent être stockées et configurées pour mettre en cache des données sur une base régulière.
- vous pouvez écrire les classes de proxy.net des services http:// /Reportserverver/ReportingService2010 or /ReportExecution2005. Vous pouvez alors créer vos propres méthodes dans .NET pour envoyer par e-mail, sauvegarder ou manipuler des données SSRS à partir du service directement d'un serveur hébergeant des rapports SSRS en code. par programmation à l'Exportation de rapport SSRS à partir de sharepoint à l'aide de ReportService2010.asmx
Inconvénients:
- SSRS est une sorte de wonkey par rapport à d'autres choses démarrage rapide. La plupart des gens sont confus par la Politique de sécurité et de concevoir rapports en tant qu' "ajout" à VS. SQL 2005 = VS BIDS 2005, SQL 2008 = VS BIDS 2008, SQL 2012 = VS BIDS 2010(LOL).
- continue sur 1 la politique pour les cadres de sécurité IMHO sont idiotically surcomplex. Il y a la sécurité du serveur, la sécurité de la base de données et les rôles, deux paramètres de sécurité sur la page hébergée pour le service. La plupart des gens n'installent qu'un administrateur qui ne peut pas entrer et se demandent pourquoi les autres utilisateurs ne peuvent pas. La plainte ou la question la plus courante sur les SSRS est liée à entrer généralement à partir de mon expérience.
- vous pouvez utiliser des 'expressions'qui 'amélioreront' votre rapport. Souvent vous n'avez plus que quelques et votre rapport d'analyse de la performance.
- Vous avez une quantité de choses que vous pouvez faire et de l'exportation. Les SSRS n'ont aucun hover over reporting que je sache sans un piratage javascript.
- la vitesse et la performance peuvent prendre un coup comme le stupide config SSRS recycle le système et une première rapport peut prendre un certain temps à des fois juste le chargement du site. Vous pouvez contourner cela en le modifiant mais j'ai trouvé faire un service de garder en vie car il fonctionne mieux.
II. Les rapports RDLC sont des rapports contenus par le CLIENT qui ne sont hébergés nulle part. Le c supplémentaire dans le nom signifie "Client". Il s'agit généralement 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'.
"151900920 des" Prestations de RDLC rapports:- vous pouvez brancher un service wcf beaucoup beaucoup plus facile à l'ensemble de données.
- vous avez plus de contrôle sur l'ensemble de données et pouvez utiliser des classes POCO remplies d'objets Entity framework ou ADO.NET directement ainsi que les tables elles-mêmes. Vous pouvez jouer avec les données pour l'optimiser avant de le lier au rapport.
- vous pouvez personnaliser le look plus avec ajouter sur directement dans le code derrière.
Inconvénients:
- vous avez besoin de gérer les paramètres sur votre propre et tandis que vous pouvez mettre en œuvre des méthodes d'enrubannage pour aider le travail de jambe est un peu plus que prévu et malheureux.
- l'utilisateur ne peut pas voir les paramètres dans un contrôle 'ReportViewer' à moins qu'il ne soit en mode distant et qu'il n'accède à un rapport RLD. Ainsi, vous avez besoin de faire des boîtes de texte, des rabattements, des boutons radio sur votre propre hors du contrôle de passer à elle. Certaines personnes aiment ce contrôle, je ne suis pas personnellement.
- Tout ce que vous voulez faire avec l'entretien de rapports pour la distribution, vous devez construire vous-même. L'Emailing, les abonnements, les sauver. Désolé que vous ayez besoin de compiler cela dans .NET ou d'implémenter un proxy qui fait déjà cela d'en haut, vous pourriez juste utiliser des rapports hébergés.
honnêtement, J'aime les deux à des fins différentes. Si je veux quelque chose pour aller à des analystes qu'ils utilisent tout le temps et de modifier pour les graphiques, les graphiques, les forages et les exportations pour exceller j'utilise RDL et juste le site de SSRS faire tout le travail d'étape de la manipulation des distributions de courrier électronique. Si je veux une application qui a une section de rapport et je sais que l'application est son propre module avec des règles et une gouvernance j'utilise un RDLC et avoir les paramètres être plus petit et être guidé par les décisions que l'Utilisateur a prises avant de se rendre à la partie de rapport sur ce client qu'ils sont sur et le site et ensuite ils choisissent généralement juste un cadre temporel ou le 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 aidera.
Q: Quelle est la différence entre les formats RDL et RDLC?
a: les fichiers RDL sont créés par le SQL Version du rapport Server 2005 Designer. Les fichiers RDLC sont créés par la version de Visual Studio 2008 Concepteur De Rapport.
Les formatsRDL et RDLC ont le même XML schéma. Cependant, dans les fichiers RDLC, certains les valeurs (telles que le texte de requête) sont peut être vide, ce qui signifie que ils ne sont pas immédiatement prêt à être publié sur un Serveur de Rapports. Le les valeurs manquantes peuvent être saisies par ouvrir le fichier RDLC en utilisant le SQL Version du rapport Server 2005 Designer. (Vous devez le renommer .rdlc à .rdl premier.)
Les fichiersRDL sont entièrement compatibles avec le ReportViewer contrôle l'exécution. Cependant, les fichiers RDL ne contiennent pas l'information que le temps de le contrôle ReportViewer dépend pour la génération automatique code liant les données. Par liaison manuelle données, les fichiers RDL peuvent être utilisés dans le ReportViewer contrôle. Nouveau! Voir aussi le programme D'échantillon de visionneuse RDL.
noter que le ReportViewer contrôle ne contient aucune logique connexion aux bases de données ou exécution requête. En séparant une telle logique, le rapport Viewer a été rédigé compatible avec toutes les sources de données, y compris les sources de données autres que les bases de données. Toutefois, cela signifie que lorsqu'un RDL fichier est utilisé par le ReportViewer contrôle, le SQL lié information dans le fichier RDL est simplement ignoré par contrôle. Il est l'hôte responsabilité de l'application se connecter aux bases de données, exécuter des requêtes et fournir des données au Rapporteur Viewer contrôle sous forme de ADO.NET DataTables.
j'ai toujours pensé que la différence entre RDL et RDLC est que RDL est utilisé pour les services de rapports de Serveur SQL et RDLC sont utilisés dans Visual Studio pour les rapports côté client. La mise en œuvre et l'éditeur sont presque identiques. RDL signifie Report Definition Language et RDLC Report Definition Language Client-side.
j'espère que ça aidera.
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 les gros rapports, allez avec rdlc. En outre, les rapports rdlc vous donnent une gamme très complète de contrôle sur vos données, vous pouvez être en mesure de vous sauver des voyages de base de données gaspillés, etc. en utilisant les rapports côté client. Sur le projet sur lequel je travaille actuellement, un rapport critique demande environ 2 minutes pour être rendu du côté du serveur, et élimine pratiquement n'importe quel serveur de rapport pour lequel il est que de temps. En passant au rendu côté client, nous voyons des performances beaucoup plus proches de 20-40 secondes avec aucune charge sur le serveur de rapport et moins de bande passante utilisée parce que seuls les ensembles de données sont téléchargés.
votre kilométrage peut varier, et je trouve que rdlc ajoute de la complexité au développement et à la maintenance, surtout 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 cents pour l'environnement VS2008.
RDL (Remote reports): bien meilleure expérience de développement, plus de flexibilité si vous avez besoin d'utiliser certaines fonctionnalités avancées comme la programmation, les rapports ad-hoc, etc...
RDLC (rapports locaux): meilleur contrôle des données avant de les envoyer au rapport (plus facile à valider ou à manipuler les données avant de les envoyer au rapport). Beaucoup plus facile déploiement, pas besoin d'une instance de services de rapports.
une énorme mise en garde avec les rapports locaux est une fuite de mémoire connue qui peut gravement affecter la performance si vos clients seront l'exécution de nombreux rapports de grande envergure. Ce problème devrait être résolu avec la nouvelle version VS2010 du lecteur de rapports.
dans mon cas, puisque nous avons un exemple de services de rapports disponibles, je développe de nouveaux rapports en tant que DGR et je les convertis ensuite en rapports locaux (ce qui est easy) et les déployer sous forme de rapports locaux.
si vous disposez d'une infrastructure de services de rapports, utilisez-la. Vous trouverez le développement RDL un peu plus agréable. Vous pouvez prévisualiser le rapport, configurer facilement les paramètres, etc.
alors que I actuellement penche vers RDL parce qu'il semble plus souple et plus facile à gérer, RDLC a un avantage en ce qu'il semble simplifier votre licence. Parce que RDLC n'a pas besoin d'une instance de services de rapports, vous n'aurez pas besoin d'une licence de services de rapports pour l'utiliser.
Je ne suis pas sûr que cela s'applique encore avec les nouvelles versions de SQL Server, mais à un moment si vous avez choisi de mettre la base de données SQL Server et les services de rapports instances sur deux machines distinctes, vous étiez tenus d'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 similaires et des postes concernant les Rapports des Services de délivrance de licences.
pour VS2008, je crois que RDL vous offre de meilleures fonctionnalités d'édition que RDLC. Par exemple, je peux changer les caractères gras sur une quantité de texte sélectionnée dans une boîte 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)
c'est parce que RDLC utilise un namespace/formatage antérieur à partir de 2005, alors que RDL utilise 2008. Cela va cependant changer avec VS2010
si nous avons moins de rapports qui sont moins complexes et consommés par asp.net pages web. Il est préférable d'utiliser rdlc,la raison est que nous pouvons éviter de maintenir des rapports sur L'instance RS. mais nous devons récupérer les données à partir de DB manuellement et les lier à rdlc.
inconvénients:la conception rdlc dans visual studio est peu difficile par rapport au concepteur SSrs.
Pro: L'entretien est facile. en exportant le rapport de notre page,a observé que le gain de rendement comparé aux rapports côté serveur.
si vous voulez utiliser report dans asp.net alors utilisez .rdl si vous souhaitez utiliser /afficher dans le générateur de rapports / rapport sur le serveur, puis de les utiliser .rdlc juste en convertissant le format manuellement il fonctionne