[reporting-services] RDL 보고서를 통해 RDLC를 사용하는 경우

저는 지난 몇 주 동안 SSRS 2005/2008을 공부했고 일부 서버 측 보고서를 작성했습니다. 일부 응용 프로그램의 경우 동료가 특정 상황에 대해 RDLC를 살펴볼 것을 제안했습니다. 나는 이제 RDL과 RDLC의 주요 차이점에 대해 고심하고 있습니다.

이 정보를 검색하면 기껏해야 조각난 정보가 생성됩니다. 나는 다음을 배웠다 :

  • RDLC 보고서는 데이터를 얻는 방법에 대한 정보를 저장하지 않습니다.
  • RDLC 보고서는 ReportViewer 컨트롤에서 직접 실행할 수 있습니다.

하지만 여전히 RDLC 파일과 다른 관련 시스템 (보고 서버, 원본 데이터베이스, 클라이언트) 간의 관계를 완전히 이해하지 못했습니다.

RDLC 파일을 잘 이해하기 위해 사용 방법이 RDL 파일과 어떻게 다른지, 어떤 상황에서 RDL보다 RDLC를 선택하는지 알고 싶습니다. 리소스 링크도 환영합니다.

최신 정보:

ASP.NET 포럼스레드에서 이와 동일한 문제에 대해 논의합니다. 이를 통해 문제에 대해 더 잘 이해하게되었습니다.

RDLC의 기능은 ReportViewer 컨트롤에서 완전히 클라이언트 쪽에서 실행할 수 있다는 것 입니다.

  • 이렇게하면 Reporting Services 인스턴스가 필요하지 않으며 데이터베이스 연결도 필요하지 않습니다.
  • 보고서에 필요한 데이터를 수동으로 제공해야한다는 요구 사항을 추가합니다.

이것이 장점인지 단점인지 여부는 특정 응용 프로그램에 따라 다릅니다.

내 응용 프로그램에서는 어쨌든 Reporting Services 인스턴스를 사용할 수 있으며 보고서에 필요한 데이터를 데이터베이스에서 쉽게 가져올 수 있습니다. RDLC를 고려해야 할 이유가 있습니까? 아니면 단순히 RDL을 고수해야합니까?



답변

내 경험상 두 가지 모두에 대해 생각할 사항이 거의 없습니다.

I. RDL 보고서는 일반적으로 HOSTED 보고서입니다. 즉, SSRS 서버를 구현해야합니다. 보고 언어에 대한 SQL Server의 Visual Studio 확장 기능이 기본 제공됩니다. SSRS를 설치할 때 ‘Business Intelligence Development Studio’라는 추가 기능이 있어야합니다.이 기능은 보고서없이 작업하는 것보다 훨씬 쉽게 작업 할 수 있습니다.

R eport

D의 efinition

L angauge

RDL 보고서의 이점 :

  1. 서비스가 실행중인 환경에서 보고서를 호스팅 할 수 있습니다.
  2. 독립 실행 형 개념으로 보안을 처리하도록 항목 또는 상속 수준에 대한 보안을 구성 할 수 있습니다.
  3. 이메일을 발송하고 (접속할 수있는 SMTP 서버가있는 경우) 일정에 따라 파일을 저장하도록 서비스를 구성 할 수 있습니다.
  4. 일반적으로 ‘ReportServer’라고하는 데이터베이스가 있으므로 게시 된 보고서에 대한 정보를 쿼리 할 수 ​​있습니다.
  5. ASP.NET, WPF (winform 컨트롤 bleh! 포함)로 작성된 클라이언트 응용 프로그램의 ‘ReportViewer’또는 ‘ProcessingMode.Remote’를 사용하는 .NET의 Winforms를 통해 이러한 보고서에 액세스 할 수 있습니다.
  6. 사용자가보고 사용할 수있는 매개 변수를 설정하여 더 많은 유연성을 얻을 수 있습니다.
  7. 연결 문자열에 사용할 보고서의 일부를 ‘데이터 원본’으로 구성하고 SQL 쿼리, xml 또는 기타 데이터 집합을 ‘데이터 집합’으로 구성 할 수 있습니다. 이러한 부품 및 기타 부품은 정기적으로 데이터를 캐시하도록 저장 및 구성 할 수 있습니다.
  8. http : // / ReportServer / ReportingService2010 또는 / ReportExecution2005 서비스의 .NET 프록시 클래스를 작성할 수 있습니다. 그런 다음 코드에서 SSRS 보고서를 호스팅하는 서버의 서비스에서 직접 SSRS 데이터를 이메일로 전송, 저장 또는 조작하기 위해 .NET에서 OWN 메서드를 구성 할 수 있습니다.
    ReportService2010.asmx를 사용하여 SharePoint에서 프로그래밍 방식으로 SSRS 보고서 내보내기

단점 :

  1. SSRS는 다른 것들에 비해 빠른 속도로 작동하는 것과 비교할 때 일종의 경이 롭습니다. 대부분의 사람들은 보안 정책과 VS에 대한 ‘추가 기능’으로 보고서를 디자인하는 것에 혼란스러워합니다. SQL 2005 = VS BIDS 2005, SQL 2008 = VS BIDS 2008, SQL 2012 = VS BIDS 2010 (LOL).
  2. 계속해서 1 보안 설정 IMHO에 대한 정책은 어리석게도 지나치게 복잡합니다. 서비스를 위해 호스팅되는 페이지에는 서버 보안, 데이터베이스 보안 및 역할, 두 가지 보안 설정이 있습니다. 대부분의 사람들은 들어갈 수없는 관리자 만 설정하고 다른 사용자가 할 수없는 이유를 궁금해합니다. SSRS에 대한 가장 일반적인 불만이나 질문은 일반적으로 내 경험에서 들어오는 것과 관련이 있습니다.
  3. 보고서를 ‘향상’시키는 ‘표현식’을 사용할 수 있습니다. 종종 몇 가지 이상의 작업을 수행하고 보고서가 성능 크롤링으로 이동합니다.
  4. 할 수 있고 내보낼 수있는 작업의 양이 정해져 있습니다. SSRS는 자바 스크립트 해킹없이 내가 아는보고 위에 마우스를 올려 놓지 않습니다.
  5. 어리석은 SSRS 구성이 시스템을 재활용하고 첫 번째 보고서가 사이트를로드하는 데 시간이 걸릴 수 있으므로 속도와 성능이 타격을받을 수 있습니다. 이를 변경하여 해결할 수 있지만 연결 유지 서비스가 더 잘 작동하는 것으로 나타났습니다.

II. RDLC 보고서는 어디에도 호스팅되지 않는 클라이언트 포함 보고서입니다. 이름의 추가 c는 ‘클라이언트’를 의미합니다. 일반적으로 이것은 Visual Studio 클라이언트 응용 프로그램에서만 사용하기위한 RDL 언어의 확장입니다. ‘보고’항목을 추가하면 Visual Studio에 존재합니다.

RDLC 보고서의 이점 :

  1. wcf 서비스를 훨씬 더 쉽게 데이터 셋에 연결할 수 있습니다.
  2. 데이터 세트를 더 많이 제어 할 수 있으며 Entity 프레임 워크 개체 또는 ADO.NET으로 채워진 POCO 클래스와 테이블 자체를 직접 사용할 수 있습니다. 보고서에 바인딩하기 전에 최적화를 위해 데이터를 가져갈 수 있습니다.
  3. 코드 뒤에서 직접 추가 기능을 사용하여 모양을 더 많이 사용자 지정할 수 있습니다.

단점 :

  1. 매개 변수를 직접 처리해야하며 래퍼 메서드를 구현하여 다리 작업이 예상보다 조금 더 많고 불행하게도 도움이 될 수 있습니다.
  2. 사용자는 원격 모드에 있지 않고 RLD 보고서에 액세스하지 않는 한 ‘ReportViewer’컨트롤에서 매개 변수를 볼 수 없습니다. 따라서 컨트롤 외부에 텍스트 상자, 드롭 다운, 라디오 버튼을 직접 만들어 전달할 필요가 있습니다. 이 추가 컨트롤을 좋아하는 사람들은 개인적으로 그렇지 않습니다.
  3. 배포를 위해 보고서를 서비스하는 데 원하는 모든 작업은 직접 작성해야합니다. 이메일, 구독, 저장. 죄송합니다. .NET에서 빌드하거나 이미 위의 프록시를 구현해야 호스팅 된 보고서를 사용할 수 있습니다.

솔직히 나는 다른 목적으로 둘 다 좋아합니다. 분석가가 그래프, 차트, 드릴 다운 및 Excel로 내보내기를 항상 사용하고 조정하는 분석가에게 무언가를 전달하려면 RDL을 사용하고 SSRS 사이트에서 이메일 배포를 처리하는 모든 작업을 수행하도록합니다. 보고서 섹션이있는 애플리케이션을 원하고 애플리케이션이 규칙 및 거버넌스가있는 자체 모듈이라는 것을 알고 있다면 RDLC를 사용하고 매개 변수를 더 작게하고 사용자가 보고서 파트에 도달하기 전에 내린 결정에 따라 결정됩니다. 클라이언트가 사이트에 있고 일반적으로 시간 프레임이나 유형 만 선택하면됩니다. 따라서 일반적으로 복잡한 보고서는 RDL을 사용하고 간단한 것은 RDLC IMHO를 사용합니다.

도움이 되었기를 바랍니다.


답변

Q : RDL과 RDLC 형식의 차이점은 무엇입니까?

A : RDL 파일은 SQL Server 2005 버전의 보고서 디자이너에서 생성됩니다. RDLC 파일은 Visual Studio 2008 버전의 보고서 디자이너에서 생성됩니다.

RDL 및 RDLC 형식은 동일한 XML 스키마를 갖습니다. 그러나 RDLC 파일에서 일부 값 (예 : 쿼리 텍스트)은 비어있을 수 있습니다. 즉, 보고서 서버에 즉시 게시 할 준비가되지 않았 음을 의미합니다. 누락 된 값은 SQL Server 2005 버전의 보고서 디자이너를 사용하여 RDLC 파일을 열어 입력 할 수 있습니다. (먼저 .rdlc의 이름을 .rdl로 변경해야합니다.)

RDL 파일은 ReportViewer 컨트롤 런타임과 완벽하게 호환됩니다. 그러나 RDL 파일에는 ReportViewer 컨트롤의 디자인 타임이 데이터 바인딩 코드를 자동으로 생성하는 데 의존하는 일부 정보가 포함되어 있지 않습니다. 데이터를 수동으로 바인딩하면 ReportViewer 컨트롤에서 RDL 파일을 사용할 수 있습니다. 새로운! RDL 뷰어 샘플 프로그램도 참조하세요.

ReportViewer 컨트롤에는 데이터베이스에 연결하거나 쿼리를 실행하기위한 논리가 포함되어 있지 않습니다. 이러한 논리를 분리함으로써 ReportViewer는 비 데이터베이스 데이터 소스를 포함한 모든 데이터 소스와 호환됩니다. 그러나 이는 ReportViewer 컨트롤에서 RDL 파일을 사용하는 경우 RDL 파일의 SQL 관련 정보가 컨트롤에 의해 무시된다는 것을 의미합니다. ADO.NET DataTables 형식으로 데이터베이스에 연결하고 쿼리를 실행하고 ReportViewer 컨트롤에 데이터를 제공하는 것은 호스트 응용 프로그램의 책임입니다.

http://www.gotreportviewer.com/


답변

RDL과 RDLC의 차이점은 항상 RDL이 SQL Server Reporting Services에 사용되고 RDLC가 Visual Studio에서 클라이언트 측보고에 사용된다는 것입니다. 구현과 편집자는 거의 동일합니다. RDLReport Defintion LanguageRDLC를 나타냅니다 Report Definition Language Client-side.

도움이 되었기를 바랍니다.


답변

내 경험에 비추어 볼 때 대규모 보고서에서 고성능 (클라이언트 사양에 따라 약간 달라짐)이 필요한 경우 rdlc를 사용하십시오. 또한 rdlc 보고서는 데이터에 대한 매우 모든 범위의 제어를 제공하며 클라이언트 측 보고서를 사용하여 낭비되는 데이터베이스 여행 등을 절약 할 수 있습니다. 현재 작업중인 프로젝트에서 중요한 보고서는 서버 측에서 렌더링하는 데 약 2 분이 소요되며 그 시간 동안 어떤보고 서버를 사용하든 거의 제거합니다. 클라이언트 측 렌더링으로 전환하면 데이터 세트 만 다운로드되기 때문에 보고서 서버에 부하가없고 사용되는 대역폭이 적 으면서 20-40 초에 훨씬 가까운 성능을 볼 수 있습니다.

귀하의 마일리지는 다를 수 있으며 특히 귀하의 보고서가 서버 측 보고서로 설계된 경우 rdlc의 개발 및 유지 관리 복잡성이 추가됩니다.


답변

이러한 사항 중 일부는 위에서 다루었지만 여기에 VS2008 환경에 대한 2 센트가 있습니다.

RDL (원격 보고서) : 훨씬 더 나은 개발 경험, 일정 예약, 임시보고 등과 같은 일부 고급 기능을 사용해야하는 경우 더 많은 유연성을 제공합니다.

RDLC (로컬 보고서) : 보고서로 보내기 전에 데이터를 더 잘 제어합니다 (보고서로 보내기 전에 데이터를보다 쉽게 ​​확인하거나 조작 할 수 있음). 훨씬 쉽게 배포 할 수 있으며 Reporting Services 인스턴스가 필요하지 않습니다.

로컬 보고서에 대한 한 가지 큰주의 사항은 클라이언트가 많은 대규모 보고서를 실행할 경우 성능에 심각한 영향을 미칠 수있는 알려진 메모리 누수입니다. 이 문제는 보고서 뷰어의 새로운 VS2010 버전으로 해결되어야합니다.

필자의 경우에는 Reporting Services 인스턴스를 사용할 수 있으므로 새 보고서를 RDL로 개발 한 다음이를 로컬 보고서로 변환하고 (쉽게) 로컬 보고서로 배포합니다.


답변

보고 서비스 인프라를 사용할 수있는 경우이를 사용하십시오. RDL 개발이 좀 더 즐겁다는 것을 알게 될 것입니다. 보고서를 미리보고 쉽게 매개 변수를 설정할 수 있습니다.


답변

현재 는 RDL이 더 유연하고 관리하기 쉬워 보이므로 RDL에 의지하고 있지만 RDLC는 라이선스를 단순화하는 것 같다는 장점이 있습니다. RDLC에는 Reporting Services 인스턴스가 필요하지 않기 때문에 사용하는 데 Reporting Services 라이선스가 필요하지 않습니다.

이것이 최신 버전의 SQL Server에 여전히 적용되는지 확실하지 않지만 SQL Server Database 및 Reporting Services 인스턴스를 두 개의 개별 컴퓨터에 배치하기로 선택한 경우에는 두 개의 별도 SQL Server 라이선스가 필요했습니다.
http://social.msdn.microsoft.com/forums/en-US/sqlgetstarted/thread/82dd5acd-9427-4f64-aea6-511f09aac406/

Reporting Services 라이선스와 관련된 다른 유사한 블로그 및 게시물을 Bing 할 수 있습니다 .