Когда использовать 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
просто путем преобразования формата вручную он работает