Когда использовать RDLC над отчетами RDL?

Я изучал SSRS 2005/2008 в последние недели и создал несколько отчетов на стороне сервера. Для некоторых приложений коллега предложил мне заглянуть в RDLC для этой конкретной ситуации. Теперь я пытаюсь разглядеть основное различие между RDL и RDLC.

Поиск этой информации дает в лучшем случае фрагментированную информацию. Я узнал, что:

  • Отчеты RDLC не хранят информацию о том, как получить данные.
  • Отчеты RDLC могут выполняться непосредственно элементом управления ReportViewer.

Но я до сих пор не совсем понимаю связь между файлом RDLC и другими связанными с ним системами (Сервер отчетов, исходная база данных, клиент).

Чтобы хорошо разбираться в файлах RDLC, я хотел бы знать, как их использование отличается от файлов RDL, и в какой ситуации можно выбрать RDLC поверх RDL. Также приветствуются ссылки на ресурсы.

Обновление:

A поток на форумах ASP.NET обсуждает эту же проблему. Из этого я получил некоторое понимание в этом вопросе.

Особенностью RDLC является то, что в элементе управления ReportViewer можно выполнить полностью на стороне клиента.

  • Это устраняет необходимость в экземпляре служб Reporting Services и даже устраняет необходимость в любом подключении к базе данных, но:
  • Он добавляет требование о том, чтобы данные, которые необходимы в отчете, должны предоставляться вручную.

Является ли это преимуществом или недостатком, зависит от конкретного приложения.

В моем приложении экземпляр служб Reporting Services доступен в любом случае, и необходимые данные для отчетов можно легко извлечь из базы данных. Есть ли для меня какая-то причина рассматривать RDLC, или я должен просто придерживаться RDL?

Ответ 1

Из моего опыта есть несколько вещей, чтобы думать обо всех двух вещах:

я. Отчеты RDL обычно являются отчетами HOSTED. Это означает, что вам необходимо внедрить SSRS-сервер. Они являются встроенным расширением Visual Studio от SQL Server для языка отчетности. Когда вы устанавливаете SSRS, у вас должно быть добавление под названием "Business Intelligence Development Studio", которое гораздо легче работать с отчетами, чем без него.

R eport

D efinition

L angauge

Преимущества отчетов RDL:

  • Вы можете размещать отчеты в среде, в которой для вас работают службы.
  • Вы можете настроить безопасность на уровне элемента или наследования для защиты безопасности как отдельной концепции.
  • Вы можете настроить службу для отправки сообщений электронной почты (при наличии у вас SMTP-сервера, к которому у вас есть доступ) и сохранения файлов в расписаниях
  • У вас есть база данных, обычно называемая "ReportServer", которую вы можете запросить для информации о опубликованных отчетах.
  • Вы можете получить доступ к этим отчетам еще через "ReportViewer" в клиентском приложении, написанном в ASP.NET, WPF (с помощью winform control bleh!) или Winforms в .NET с помощью "ProcessingMode.Remote".
  • Вы можете установить параметры, которые пользователь может видеть и использовать, чтобы получить большую гибкость.
  • Вы можете настроить части отчета, который будет использоваться для строк подключения, как "Источники данных", а также SQL-запрос, xml или другие наборы данных в качестве "набора данных". Эти части и другие могут быть сохранены и настроены для кэширования данных на регулярной основе.
  • Вы можете писать классы .NET proxy для служб http:///ReportServer/ReportingService2010 или /ReportExecution 2005. Затем вы можете использовать свои СОБСТВЕННЫЕ методы в .NET для отправки, сохранения или управления данными SSRS из службы непосредственно из сервера, на котором размещаются отчеты SSRS в коде. Программно экспортировать отчет SSRS из sharepoint с помощью ReportService2010.asmx

Downsides:

  • SSRS - это своего рода выигрыш по сравнению с другими вещами при быстром получении. Большинство людей путают политику безопасности и разрабатывают отчеты как "добавление" к VS. SQL 2005 = VS BIDS 2005, SQL 2008 = VS BIDS 2008, SQL 2012 = VS BIDS 2010 (LOL).
  • Продолжая на 1 политику для настроек безопасности ИМХО, идиотично перекомплексирована. На странице, размещенной для службы, есть безопасность сервера, безопасность и роли базы данных, два параметра безопасности. Большинство людей только настраивают администратора, чем не могут войти, и задаются вопросом, почему другие пользователи не могут этого сделать. Наиболее распространенная жалоба или вопрос о SSRS связана с тем, что я обычно получаю от своего опыта.
  • Вы можете использовать выражения, которые предположительно "улучшат" ваш отчет. Часто вы делаете больше, чем несколько, и ваш отчет переходит на сканирование в производительности.
  • У вас есть определенное количество вещей, которые вы можете делать и экспортировать. У SSRS нет зависания над сообщениями, о которых я знаю, без взлома javascript.
  • Скорость и производительность могут поразиться, поскольку глупая конфигурация SSRS перерабатывает систему, и первый отчет может занять некоторое время, просто загружая сайт. Вы можете обойти это, изменив его, но я нашел, что он поддерживает службу, потому что он работает лучше.

II. Отчеты RDLC - это КЛИЕНТЫ, СОДЕРЖАЩИЕСЯ СООТВЕТСТВУЮЩИМИ отчетами, которые НЕ ПРИНИМАЮТСЯ В ЛЮБОЕ. Дополнительный c в названии означает "Клиент". Как правило, это расширение языка RDL, предназначенного для использования только в клиентских приложениях Visual Studio. Он существует в Visual Studio, когда вы добавляете элемент "report".

Преимущества отчетов RDLC:

  • Вы можете подключить услугу wcf гораздо проще для набора данных.
  • У вас есть больше контроля над набором данных и вы можете использовать классы POCO, заполненные объектами инфраструктуры Entity или ADO.NET напрямую, а также сами таблицы. Вы можете обезьяну с данными для оптимизации, прежде чем привязывать ее к отчету.
  • Вы можете настроить внешний вид больше, добавив непосредственно в код.

Downsides:

  • Вам нужно обрабатывать параметры самостоятельно, и в то время как вы можете внедрять методы обертки, чтобы помочь работе с новинками немного больше, чем ожидалось и неудачно.
  • Пользователь не может просматривать параметры в элементе управления ReportViewer, если он не находится в удаленном режиме и не получает доступ к отчету RLD. Таким образом, вам нужно сделать текстовые поля, выпадающие меню, переключатели самостоятельно вне контроля, чтобы перейти к нему. Некоторым людям нравится этот дополнительный контроль, я не лично.
  • Что бы вы ни делали с обслуживанием отчетов для распространения, вам нужно построить себя. Отправка по электронной почте, подписки, сохранение. Извините, вам нужно построить это в .NET или реализовать прокси-сервер, который уже делает это сверху, вы можете просто использовать общедоступные отчеты.

Честно говоря, мне нравятся оба для разных целей. Если я хочу, чтобы что-то вышло аналитикам, что они все время используют и настраивают графики, диаграммы, развертки и экспорт в Excel, я использую RDL, и у меня есть сайт SSRS, который выполняет всю работу по обработке почтовых рассылок. Если я хочу приложение, в котором есть раздел отчета, и я знаю, что это приложение является собственным модулем с правилами и управлением, я использую RDLC и параметры имеют меньший размер и управляются решениями, которые пользователь сделал, прежде чем перейти к части отчета о том, что клиент, они находятся на сайте и затем обычно выбирают временной интервал или тип и ничего больше. Поэтому, как правило, сложный отчет я бы использовал RDL и для чего-то простого использовал RDLC IMHO.

Я надеюсь, что это поможет.

Ответ 2

В: В чем разница между форматами RDL и RDLC?

A: файлы RDL создаются SQL Версия отчета Server 2005 Дизайнер. Файлы RDLC создаются версия Visual Studio 2008 Дизайнер отчетов.

Форматы RDL и RDLC имеют один и тот же XML схемы. Однако в файлах RDLC некоторые значения (например, текст запроса) разрешено быть пустым, что означает, что они не сразу готовы быть опубликованном на сервере отчетов. пропущенные значения могут быть введены открытие файла RDLC с использованием SQL Версия отчета Server 2005 Дизайнер. (Вы должны переименовать .rdlc в .rdl first.)

Файлы RDL полностью совместимы с среда выполнения ReportViewer. Однако файлы RDL не содержат некоторых информацию о том, что время разработки элемент управления ReportViewer зависит от для автоматического создания код привязки данных. Посредством ручной привязки данных, файлы RDL могут использоваться в Управление ReportViewer. Новый! Смотрите также программа примера RDL Viewer.

Обратите внимание, что элемент управления ReportViewer не содержит никакой логики для подключение к базам данных или выполнение запросы. Разделив такую ​​логику, был создан ReportViewer совместимый со всеми источниками данных, включая источники данных без базы данных. Однако это означает, что когда RDL файл используется ReportViewer контроль, связанная с SQL информация в файле RDL просто игнорируется контроль. Это хозяин ответственность за применение подключаться к базам данных, выполнять запросы и подавать данные в ReportViewer управление в форме ADO.NET DataTables.

http://www.gotreportviewer.com/

Ответ 3

Я всегда думал, что различие между RDL и RDLC заключается в том, что RDL используются для служб отчетов SQL Server, а RDLC используются в Visual Studio для отчетов на стороне клиента. Исполнение и редактор практически идентичны. RDL обозначает язык определения отчета и язык определения отчета RDLC на стороне клиента.

Я надеюсь, что это поможет.

Ответ 4

Из моего опыта, если вам нужна высокая производительность (это немного зависит от ваших характеристик клиента) в больших отчетах, перейдите к rdlc. Кроме того, отчеты rdlc дают вам полный контроль над вашими данными, вы можете сэкономить потраченные впустую поездки базы данных и т.д., Используя отчеты на стороне клиента. В проекте, над которым я сейчас работаю, критический отчет требует около 2 минут для рендеринга на стороне сервера, и в значительной степени вынимает какой-либо сервер отчетов, к которому он обращается за это время. Переключая его на рендеринг на стороне клиента, мы видим, что производительность намного ближе к 20-40 секундам без нагрузки на сервере отчетов и меньшей ширины полосы пропускания, поскольку загружаются только наборы данных.

Ваш пробег может отличаться, и я нахожу rdlc, добавляя сложность разработки и обслуживания, особенно когда ваш отчет был разработан как отчет на стороне сервера.

Ответ 5

Некоторые из этих пунктов были рассмотрены выше, но здесь мои 2-центы для среды VS2008.

RDL (удаленные отчеты): гораздо лучший опыт разработки, большая гибкость, если вам нужно использовать некоторые дополнительные функции, такие как планирование, специальные отчеты и т.д.

RDLC (локальные отчеты): лучше контролировать данные перед отправкой в ​​отчет (проще проверить или обработать данные перед отправкой в ​​отчет). Намного проще развертывание, нет необходимости в экземпляре служб Reporting Services.

Одно ОГРОМНОЕ оговорку с локальными отчетами - это известная утечка памяти, которая может серьезно повлиять на производительность, если ваши клиенты будут запускать множество больших отчетов. Предполагается, что этот вопрос будет рассмотрен с новой версией программы просмотра VS2010.

В моем случае, поскольку у нас есть экземпляр служб Reporting Services, я разрабатываю новые отчеты как RDL, а затем конвертирую их в локальные отчеты (что легко) и развертывать их как локальные отчеты.

Ответ 6

Если у вас есть инфраструктура служб отчетов, доступная вам, используйте ее. Вы обнаружите, что разработка RDL будет немного приятнее. Вы можете просмотреть отчет, легко настроить параметры и т.д.

Ответ 7

В то время как я в настоящее время склоняюсь к 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/

Вы можете Bing для других подобных блогов и сообщений о лицензировании служб Reporting Services.

Ответ 8

В VS2008 я считаю, что RDL дает вам лучшие функции редактирования, чем RDLC. Например, я могу изменить выделение жирным шрифтом на выбранном количестве текста в текстовом поле с RDL, тогда как в RDLC это невозможно.

RDL: abcd efgh ijklmnop

RDLC: abcd efgh ijklmnop -или-abcd efgh ijklmnop (это ваши единственные варианты)

Это связано с тем, что RDLC использует более раннее пространство имен/форматирование с 2005 года, а RDL использует 2008. Это, однако, изменится с VS2010

Ответ 9

Если у нас меньше количества отчетов, которые менее сложны и потребляются веб-страницами asp.net. Лучше идти с rdlc, причина в том, что мы можем избежать сообщений об управлении на экземпляре RS. но мы должны вручную извлекать данные из БД и связывать их с rdlc.

Минусы: дизайн rdlc в визуальной студии немного сложнее по сравнению с дизайнером SSrs.

Pro: Обслуживание легко. при экспорте отчета с нашей страницы, наблюдалось увеличение производительности по сравнению с отчетами на стороне сервера.

Ответ 10

если вы хотите использовать отчет в asp.net, используйте .rdl если вы хотите использовать/просмотреть в построителе отчетов/сервере отчетов, используйте .rdlc просто путем преобразования формата вручную он работает