Microsoft.Reporting. * Против XML / XSLT - PullRequest
6 голосов
/ 26 января 2009

Я хотел бы добавить возможности отчетности в приложение .NET. Мой источник данных - это просто модель данных приложения, то есть набор объектов, которые могли быть сгенерированы или загружены из чего угодно (не обязательно из базы данных).

Первоначально планировалось создать XML-файл данных отчета из этих объектов, а затем использовать XSLT для преобразования его в файл отчета XHTML. Затем отчет можно отобразить в приложении с помощью элемента управления браузера.

Однако я заметил, что существуют пространства имен Microsoft.Reporting. *, И из того, что я пробовал, кажется, что классы и элементы управления там также могут позаботиться о моих отчетах. Было бы хорошей идеей использовать это вместо этого? Сохранит ли это работу по сравнению с подходом XML / XSLT? С какими ограничениями (если таковые имеются) инфраструктуры отчетов Microsoft я могу столкнуться?

Ответы [ 4 ]

7 голосов
/ 26 января 2009

Несколько вещей для рассмотрения.

1) Службы Reporting Services являются частью Sql Server, поэтому у вас может возникнуть дополнительная проблема с лицензией, если вы пойдете по этому пути.

2) Службы Reporting Services могут обслуживать веб-страницы или использоваться в WinForms с полным подкачкой страниц, сортировкой, подотчетами, итогами и т. Д. И т. П. Он также будет хорошо работать с принтерами.

3) Службы отчетов поставляются с редактором WYSIWYG для создания отчетов. Он не идеален ни в коем случае, но намного проще, чем ручная обработка.

4) Использование XSL для создания XHTML может сильно снизить производительность. XSL работает над всем XML Dom, и это может быть большой документ, если вы работаете с многостраничным отчетом. Я ожидаю, что службы отчетов будут работать намного быстрее.

5) Службы Reporting Services могут использовать весь .Net, так что вы можете получить множество других функций бесплатно.

Принимая все это во внимание, использование Reporting Services сэкономит ваше время, если ваши требования к отчетности не очень просты. Это менее весело, хотя.

4 голосов
/ 28 января 2009

Согласен с большинством комментариев MrTelly со следующими исключениями и дополнениями:

  • Если вы не говорите о своем XSLT, и ваши отчетные данные ОГРОМНЫ (более 100 МБ - я имею в виду, я говорю о данных, которые подают отчет, а НЕ об исходных данных), производительность не зависит ' Вероятно, будет серьезной проблемой. Мы создали систему отчетов XML / XSLT, которая принимает наборы данных .NET и преобразует их в отчеты на лету, а при правильно написанном XSLT производительность в большинстве случаев меньше секунды (для больших наборов данных она может быть больше, но для веб-приложения ничего страшного) .

  • Макет отчета с помощью решения XML / XSLT практически не ограничен, с помощью служб Reporting Services вы ограничены конструкциями в RDL (язык определения отчетов Microsoft). Если вам нужно что-то более сложное, чем стандартные структуры отчетности, службы отчетов будут разочарованы.

1 голос
/ 28 января 2009

Отчеты о динамике данных и ActiveReports (и другие сторонние инструменты .NET) также могут напрямую создавать отчеты об объектах и ​​иметь удобную для разработчиков политику лицензирования.

0 голосов
/ 16 октября 2012

кажется, что вы также можете сгенерировать xml из ваших объектов и затем создать свой собственный ReportViewer Report из этого XMl

Создание отчетов из XML-документов с использованием ReportViewer

http://www.c -sharpcorner.com / UploadFile / Махеш / XmlReports04182007115639AM / XmlReports.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...