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

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

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

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

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

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

Обновить:

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

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

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

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

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

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

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

R eport

Определение

L- датчик

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

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

Недостатки:

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

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

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

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

Недостатки:

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

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

Надеюсь, это поможет.

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

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

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

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

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

http://www.gotreportviewer.com/

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

Надеюсь, это поможет.

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

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

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

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

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

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

В моем случае, поскольку у нас есть экземпляр служб Reporting Services, я разрабатываю новые отчеты как 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/

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

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

RDL: abcd efgh ijklmnop

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

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

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

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

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

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

Давайте будем гением компьютера.