Когда использовать отчеты RDLC поверх отчетов RDL?
В последние недели я изучал SSRS 2005 / 2008 и создал несколько отчетов на стороне сервера. Для какого-то приложения коллега предложил мне изучить RDLC для этой конкретной ситуации. Сейчас я пытаюсь обдумать основное различие между RDL и RDLC.
Поиск этой информации в лучшем случае дает фрагментированную информацию. Я узнал, что:
- Отчеты RDLC не хранят информацию о том, как получить данные.
- Отчеты RDLC могут выполняться непосредственно с помощью элемента управления ReportViewer.
Но я все еще не до конца понимаю связь между файлом RDLC и другими соответствующими системами (Сервер отчетов, исходная база данных, клиент).
Чтобы получить хорошее представление о файлах RDLC, я хотел бы знать, чем их использование отличается от файлов RDL и в какой ситуации можно было бы выбрать RDLC вместо RDL. Ссылки на ресурсы также приветствуются.
Обновить:
Тема на форумах ASP.NET обсуждает эту же проблему. Из этого я получил некоторое лучшее понимание по этому вопросу.
Особенностью RDLC является то, что он может работать полностью на стороне клиента в элементе управления ReportViewer.
- Это устраняет необходимость в экземпляре служб Reporting Services и даже устраняет необходимость в любом подключении к базе данных, но:
- Это добавляет требование, чтобы данные, которые необходимы в отчете, предоставлялись вручную.
Является ли это преимуществом или недостатком, зависит от конкретного применения.
В моем приложении экземпляр служб Reporting Services в любом случае доступен, и необходимые данные для отчетов можно легко извлечь из базы данных. Есть ли какая-то причина, по которой я должен рассмотреть RDLC, или я должен просто придерживаться RDL?
10 ответов
Исходя из моего опыта, есть несколько вещей, чтобы думать об обеих вещах:
I. Отчеты RDL в целом являются HOSTED. Это означает, что вам нужно внедрить SSRS Server. Они являются встроенным расширением Visual Studio из SQL Server для языка отчетности. При установке SSRS у вас должна быть надстройка "Business Intelligence Development Studio", с которой гораздо проще работать с отчетами, чем без него.
Репорт
Определение
L angauge
Преимущества отчетов RDL:
- Вы можете размещать отчеты в среде, в которой для них запущены службы.
- Вы можете настроить безопасность для элемента или уровня наследования, чтобы обрабатывать безопасность как отдельную концепцию
- Вы можете настроить службу для отправки электронных писем (при условии, что у вас есть SMTP-сервер, к которому у вас есть доступ) и сохранять файлы по расписанию.
- У вас есть база данных, обычно называемая ReportServer, вы можете запросить информацию об отчетах после их публикации.
- Вы можете получить доступ к этим отчетам по-прежнему через ReportViewer в клиентском приложении, написанном на ASP.NET, WPF (с функцией управления winform!) Или Winforms в.NET с помощью ProcessingMode.Remote.
- Вы можете установить параметры, которые пользователь может видеть и использовать для большей гибкости.
- Вы можете настроить части отчета, которые будут использоваться для строк подключения как "Источники данных", а также как SQL-запрос, xml или другие наборы данных как "Набор данных". Эти и другие части могут быть сохранены и настроены для регулярного кэширования данных.
- Вы можете написать прокси-классы.NET для служб http:// /ReportServer/ReportingService2010 или /ReportExecution2005. Затем вы можете создать свои СОБСТВЕННЫЕ методы в.NET для отправки по электронной почте, сохранения или манипулирования данными SSRS из службы непосредственно с сервера, на котором размещаются отчеты SSRS в коде. Программный экспорт отчета SSRS из sharepoint с использованием ReportService2010.asmx
Недостатки:
- SSRS - своего рода чудак по сравнению с другими вещами при быстром запуске. Большинство людей смущаются политикой безопасности и проектированием отчетов как "дополнения" к VS. SQL 2005 = VS BIDS 2005, SQL 2008 = VS BIDS 2008, SQL 2012 = VS BIDS 2010(LOL).
- Продолжая на 1, политика для параметров безопасности IMHO идиотски излишне сложна. На странице, размещенной для службы, есть защита сервера, защита базы данных и роли, два параметра безопасности. Большинство людей только настраивают администратора, чем не могут войти, и удивляются, почему другие пользователи не могут. Самая распространенная жалоба или вопрос по SSRS связана с получением информации, как правило, из моего опыта.
- Вы можете использовать "выражения", которые предположительно "улучшат" ваш отчет. Часто вы делаете больше, чем несколько, и ваш отчет идет на снижение производительности.
- У вас есть набор вещей, которые вы можете сделать и экспортировать. У SSRS нет никаких проблем с отчетами, о которых я знаю, без взлома JavaScript.
- Скорость и производительность могут сильно пострадать, поскольку глупая конфигурация SSRS перезагружает систему, а первый отчет может занять некоторое время, просто загружая сайт. Вы можете обойти это, изменив его, но я обнаружил, что служба поддержания жизни работает лучше.
II. Отчеты RDLC - это отчеты, содержащиеся в клиенте, которые не размещены где-либо еще. Дополнительная буква c в названии означает "Клиент". Обычно это расширение языка RDL, предназначенное для использования только в клиентских приложениях Visual Studio. Он существует в Visual Studio, когда вы добавляете элемент "создания отчетов".
Преимущества отчетов RDLC:
- Вы можете подключить сервис wcf намного проще для набора данных.
- Вы имеете больший контроль над набором данных и можете использовать классы POCO, заполненные объектами инфраструктуры Entity или ADO.NET напрямую, а также сами таблицы. Вы можете использовать данные для оптимизации перед привязкой к отчету.
- Вы можете настроить внешний вид, добавив непосредственно в коде позади.
Недостатки:
- Вам нужно обрабатывать параметры самостоятельно, и хотя вы можете реализовать методы-обертки, чтобы облегчить работу, это немного больше, чем ожидалось, и это неудачно.
- Пользователь не может ВИДЕТЬ параметры в элементе управления ReportViewer, если он не находится в удаленном режиме и не имеет доступа к отчету RLD. Таким образом, вам нужно сделать текстовые поля, выпадающие списки, переключатели самостоятельно вне элемента управления, чтобы перейти к нему. Некоторым людям нравится этот дополнительный контроль, я не лично.
- Все, что вы хотите сделать с обслуживанием отчетов для распространения, вам нужно создать самостоятельно. Электронная почта, подписки, сохранение. Извините, вам нужно встроить это в.NET или внедрить прокси, который уже делает это сверху, вы можете просто использовать размещенные отчеты.
Честно говоря, мне нравятся оба для разных целей. Если я хочу, чтобы что-то говорило аналитикам, которые они постоянно используют и настраивают для графиков, диаграмм, детализации и экспорта в Excel, я использую RDL и просто заставляю сайт SSRS выполнять всю работу по обработке рассылок по электронной почте. Если мне нужно приложение, в котором есть раздел отчета, и я знаю, что приложение является его собственным модулем с правилами и управлением, я использую RDLC, параметры которого меньше и зависят от решений, которые пользователь принял, прежде чем перейти к части отчета о том, что клиент, на котором они находятся, и сайт, а затем они обычно просто выбирают временные рамки или тип и ничего более. Так что в целом сложный отчет я бы использовал RDL и для чего-то простого я бы использовал RDLC IMHO.
Надеюсь, это поможет.
Q: В чем разница между форматами RDL и RDLC?
A: RDL-файлы создаются в версии SQL Server 2005 конструктора отчетов. Файлы RDLC создаются версией Дизайнера отчетов Visual Studio 2008.
Форматы RDL и RDLC имеют одинаковую XML-схему. Однако в файлах RDLC некоторые значения (например, текст запроса) могут быть пустыми, что означает, что они не сразу готовы к публикации на сервере отчетов. Недостающие значения можно ввести, открыв файл RDLC с помощью версии конструктора отчетов для SQL Server 2005. (Вы должны сначала переименовать.rdlc в.rdl.)
Файлы RDL полностью совместимы со средой управления ReportViewer. Однако файлы RDL не содержат некоторой информации, от которой зависит время разработки элемента управления ReportViewer для автоматической генерации кода привязки данных. Привязывая данные вручную, файлы RDL можно использовать в элементе управления ReportViewer. Новый! Смотрите также пример программы RDL Viewer.
Обратите внимание, что элемент управления ReportViewer не содержит никакой логики для подключения к базам данных или выполнения запросов. Благодаря выделению такой логики ReportViewer стал совместимым со всеми источниками данных, включая источники данных, не относящиеся к базе данных. Однако это означает, что когда файл RDL используется элементом управления ReportViewer, связанная с SQL информация в файле RDL просто игнорируется элементом управления. Хост-приложение отвечает за подключение к базам данных, выполнение запросов и передачу данных в элемент управления ReportViewer в форме ADT.NET DataTables.
Я всегда думал, что различия между 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, потому что он кажется более гибким и более простым в управлении, RDLC имеет преимущество в том, что упрощает лицензирование. Поскольку RDLC не нужен экземпляр служб Reporting Services, вам не понадобится лицензия Reporting Services для его использования.
Я не уверен, применимо ли это к более новым версиям SQL Server, но в одно время, если вы решили разместить экземпляры базы данных SQL Server и служб Reporting Services на двух отдельных компьютерах, вам потребовалось иметь две отдельные лицензии SQL Server:
http://social.msdn.microsoft.com/forums/en-US/sqlgetstarted/thread/82dd5acd-9427-4f64-aea6-511f09aac406/
Вы можете Bing для других аналогичных блогов и сообщений, касающихся лицензирования служб Reporting Services.
Если вам доступна инфраструктура служб отчетов, используйте ее. Вы найдете разработку RDL более приятной. Вы можете просмотреть отчет, легко настроить параметры и т. Д.
Я считаю, что для VS2008 RDL дает вам лучшие возможности редактирования, чем RDLC. Например, я могу изменить жирный шрифт для выделенного объема текста в текстовом поле с помощью RDL, тогда как в RDLC это невозможно.
RDL: abcd efgh ijklmnop
RDLC: abcd efgh ijklmnop -или- abcd efgh ijklmnop (ваши единственные варианты)
Это связано с тем, что RDLC использует более раннее пространство имен / форматирование с 2005 года, а RDL использует 2008 год. Однако это изменится с VS2010
Если у нас меньше отчетов, которые менее сложны и используются веб-страницами asp.net. Лучше пойти с rdlc, причина в том, что мы можем избежать ведения отчетов по экземпляру RS. но мы должны извлечь данные из БД вручную и связать их с rdlc.
Минусы: проектирование rdlc в визуальной студии немного сложнее, чем у дизайнера SSrs.
Pro: Техническое обслуживание легко. при экспорте отчета со страницы мы заметили, что прирост производительности по сравнению с отчетами на стороне сервера.
Если вы хотите использовать отчет в asp.net, тогда используйте.rdl, если вы хотите использовать / просмотреть в построителе отчетов / сервере отчетов, тогда используйте.rdlc, просто преобразовав формат вручную, это работает