Tenho estudado o SSRS 2005/2008 nas últimas semanas e criei alguns relatórios do lado do servidor. Para alguma aplicação, um colega sugeriu que eu procurasse RDLC para essa situação particular. Agora estou tentando entender a principal diferença entre RDL e RDLC.
A busca por essas informações rende, na melhor das hipóteses, informações fragmentadas. Eu aprendi que:
- Os relatórios RDLC não armazenam informações sobre como obter dados.
- Os relatórios RDLC podem ser executados diretamente pelo controle ReportViewer.
Mas ainda não entendo totalmente a relação entre o arquivo RDLC e os outros sistemas relacionados (o Reporting Server, o banco de dados de origem, o cliente).
Para ter uma boa compreensão dos arquivos RDLC, gostaria de saber como seu uso difere dos arquivos RDL e em que situação se escolheria RDLC em vez de RDL. Links para recursos também são bem-vindos.
Atualizar:
Um tópico nos fóruns ASP.NET discute esse mesmo problema. A partir daí, obtive um melhor entendimento sobre o assunto.
Um recurso do RDLC é que ele pode ser executado completamente do lado do cliente no controle ReportViewer.
- Isso remove a necessidade de uma instância do Reporting Services e até remove a necessidade de qualquer conexão de banco de dados, mas:
- Ele adiciona o requisito de que os dados necessários no relatório sejam fornecidos manualmente.
Se isso é uma vantagem ou uma desvantagem, depende da aplicação específica.
Em meu aplicativo, uma instância do Reporting Services está disponível de qualquer maneira e os dados necessários para os relatórios podem ser facilmente obtidos de um banco de dados. Resta alguma razão para eu considerar o RDLC ou devo simplesmente ficar com o RDL?
fonte
List<T>
deMyEntity
) como a fonte de relatórios remotos ( RDL ), não RDLC ?Sempre pensei que a diferença entre RDL e RDLC é que RDL são usados para SQL Server Reporting Services e RDLC são usados no Visual Studio para relatórios do lado do cliente. A implementação e o editor são quase idênticos. RDL significa
Report Defintion Language
e RDLCReport Definition Language Client-side
.Espero que ajude.
fonte
Pela minha experiência, se você precisa de alto desempenho (isso depende um pouco das especificações do cliente) em relatórios grandes, use o rdlc. Além disso, os relatórios rdlc oferecem uma gama muito completa de controle sobre seus dados, você pode ser capaz de evitar o desperdício de viagens de banco de dados, etc., usando relatórios do lado do cliente. No projeto em que estou trabalhando atualmente, um relatório crítico requer cerca de 2 minutos para ser renderizado no lado do servidor e praticamente remove qualquer servidor de relatório que atingir naquele momento. Alternando para renderização do lado do cliente, vemos o desempenho muito mais próximo de 20-40 segundos sem carga no servidor de relatório e menos largura de banda usada porque apenas os conjuntos de dados estão sendo baixados.
Sua milhagem pode variar e eu acho que o rdlc adiciona complexidade de desenvolvimento e manutenção, especialmente quando seu relatório foi projetado como um relatório do lado do servidor.
fonte
Alguns desses pontos foram abordados acima, mas aqui estão meus 2 centavos para o ambiente VS2008.
RDL (relatórios remotos): Experiência de desenvolvimento muito melhor, mais flexibilidade se você precisar usar alguns recursos avançados como agendamento, relatórios ad-hoc, etc ...
RDLC (Relatórios locais): Melhor controle sobre os dados antes de enviá-los ao relatório (mais fácil de validar ou manipular os dados antes de enviá-los ao relatório). Implantação muito mais fácil, sem necessidade de uma instância do Reporting Services.
Uma GRANDE advertência com relatórios locais é um vazamento de memória conhecido que pode afetar gravemente o desempenho se seus clientes executarem vários relatórios grandes. Isso deve ser resolvido com a nova versão VS2010 do visualizador de relatórios.
No meu caso, como temos uma instância do Reporting Services disponível, desenvolvo novos relatórios como RDLs e depois os converto em relatórios locais (o que é fácil) e os implanto como relatórios locais.
fonte
Se você tiver uma infraestrutura de serviços de relatório disponível, use-a. Você achará o desenvolvimento de RDL um pouco mais agradável. Você pode visualizar o relatório, configurar parâmetros facilmente, etc.
fonte
Embora atualmente eu me incline para o RDL porque parece mais flexível e fácil de gerenciar, o RDLC tem a vantagem de simplificar o seu licenciamento. Como o RDLC não precisa de uma instância do Reporting Services, você não precisará de uma Licença do Reporting Services para usá-lo.
Não tenho certeza se isso ainda se aplica às versões mais recentes do SQL Server, mas ao mesmo tempo, se você optou por colocar as instâncias do banco de dados do SQL Server e do Reporting Services em duas máquinas separadas, era necessário ter duas licenças separadas do SQL Server:
http://social.msdn.microsoft.com/forums/en-US/sqlgetstarted/thread/82dd5acd-9427-4f64-aea6-511f09aac406/
Você pode usar o Bing para outros blogs e postagens semelhantes sobre o licenciamento do Reporting Services.
fonte
Para VS2008, acredito que RDL oferece melhores recursos de edição do que RDLC. Por exemplo, posso alterar o negrito em uma quantidade selecionada de texto em uma caixa de texto com RDL, enquanto em RDLC isso não é possível.
RDL: abcd efgh ijklmnop
RDLC: abcd efgh ijklmnop -ou- abcd efgh ijklmnop (são suas únicas opções)
Isso ocorre porque o RDLC está usando um namespace / formatação anterior de 2005, enquanto o RDL está usando 2008. No entanto, isso mudará com o VS2010
fonte
Se tivermos menos número de relatórios que são menos complexos e consumidos por páginas da web do asp.net. É melhor usar o rdlc, porque podemos evitar a manutenção de relatórios na instância do RS. mas temos que buscar os dados do banco de dados manualmente e vinculá-los ao rdlc.
Contras: projetar rdlc no visual studio é um pouco difícil em comparação com o designer SSrs.
Pro: a manutenção é fácil. ao exportar o relatório da página nós, observou que o ganho de desempenho em comparação com os relatórios do lado do servidor.
fonte
se você quiser usar o relatório em asp.net, use .rdl se quiser usar / visualizar no construtor de relatório / servidor de relatório, então use .rdlc apenas convertendo o formato manualmente, ele funciona
fonte