Когда использовать 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:
- Вы можете размещать отчеты в среде, в которой для вас работают службы.
- Вы можете настроить безопасность на уровне элемента или наследуемого уровня, чтобы обрабатывать безопасность как отдельную концепцию
- Вы можете настроить службу на отправку электронных писем (при условии, что у вас есть SMTP-сервер, к которому у вас есть доступ) и сохранять файлы по расписанию
- У вас есть firebase database, обычно называемая «ReportServer», которую вы можете запросить для информации о опубликованных отчетах.
- Вы можете получить доступ к этим отчетам еще через «ReportViewer» в клиентском приложении, написанном в ASP.NET, WPF (с помощью winform control bleh!) Или Winforms в .NET с помощью «ProcessingMode.Remote».
- Вы можете установить параметры, которые пользователь может видеть и использовать, чтобы получить большую гибкость.
- Вы можете настроить части отчета, который будет использоваться для строк подключения, как «Источники данных», а также SQL-запрос, xml или другие наборы данных в качестве «набора данных». Эти части и другие могут быть сохранены и настроены для кэширования данных на регулярной основе.
- Вы можете писать classы .NET proxy для служб 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, политика для настроек безопасности ИМХО идиотично переполнена. На странице, размещенной для службы, есть безопасность сервера, безопасность и роли базы данных, два параметра безопасности. Большинство людей только настраивают администратора, чем не могут войти, и задаются вопросом, почему другие пользователи не могут этого сделать. Наиболее распространенная жалоба или вопрос о SSRS связана с тем, что я получаю, как правило, из своего опыта.
- Вы можете использовать выражения, которые предположительно будут «улучшать» ваш отчет. Часто вы делаете больше, чем несколько, и ваш отчет переходит на сканирование в производительности.
- У вас есть множество вещей, которые вы можете сделать и экспортировать. У SSRS нет зависания над сообщениями, о которых я знаю, без взлома javascript.
- Скорость и производительность могут поразиться, поскольку глупая конфигурация SSRS перерабатывает систему, и первый отчет может занять некоторое время, просто загружая сайт. Вы можете обойти это, изменив его, но я нашел, что он поддерживает службу, потому что он работает лучше.
II. Отчеты RDLC – это КЛИЕНТЫ, СОДЕРЖАЩИЕСЯ СООТВЕТСТВУЮЩИМИ отчетами, которые НЕ ПРИНИМАЮТСЯ В ЛЮБОЕ. Дополнительный c в названии означает «Клиент». Как правило, это расширение языка RDL, предназначенного для использования только в клиентских приложениях Visual Studio. Он существует в Visual Studio, когда вы добавляете элемент «отчет».
Преимущества отчетов RDLC:
- Вы можете подключить wcf-сервис намного намного проще к набору данных.
- У вас больше контроля над набором данных и вы можете использовать classы POCO, заполненные объектами инфраструктуры Entity или ADO.NET, а также сами таблицы. Вы можете обезьяну с данными для оптимизации, прежде чем привязывать ее к отчету.
- Вы можете настроить внешний вид, добавив непосредственно в код.
Недостатки:
- Вам нужно обрабатывать параметры самостоятельно, и, хотя вы можете внедрять методы-обертки, чтобы помочь работе с бельем немного больше, чем ожидалось и прискорбно.
- Пользователь не может просматривать параметры в элементе управления ReportViewer, если он не находится в удаленном режиме и не получает доступ к отчету RLD. Таким образом, вам нужно сделать текстовые поля, выпадающие меню, переключатели самостоятельно вне контроля, чтобы перейти к нему. Некоторым людям нравится этот дополнительный контроль, я не лично.
- Все, что вы хотите делать с обслуживанием отчетов для распространения, вам нужно построить самостоятельно. Отправка по электронной почте, подписки, сохранение. Извините, вам нужно построить это в .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.
Я всегда думал, что различие между 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, просто путем преобразования формата вручную он работает