Вопрос

У меня есть решение визуальной студии со следующими проектами:

  1. пользовательский интерфейс
  2. Доступ к данным
  3. ДеловаяЛогика
  4. БизнесОбъекты

Теперь у меня есть куча кода, который генерирует отчеты, которые отправляются по электронной почте или сохраняются в виде файлов CSV.

Эти классы ReportGenerators принимают бизнес-объекты и выводят либо файлы, либо строки.

в какой проект вы бы их включили?Я склоняюсь к ответу, но хотел узнать, что думают другие?

Это было полезно?

Решение

Я бы создал отдельный отчетный проект. Он не принадлежит пользовательскому интерфейсу (я полагаю, они работают в фоновом режиме) - это фактически слой «логики отчетности».

Если вы думаете о том, как вы хотите поддерживать отчетность, вы можете захотеть использовать бэкэнд-сервис, но в будущем вы также можете предоставить данные через веб-сервис. Если вам нужно предоставить пользователям интерфейсные средства отчетности, вы подключаетесь к логике отчетности, как если бы вы использовали обычный пользовательский интерфейс - > Логика - > Архитектура доступа к данным.

Кроме того, если вы отделите свой код отчетности, вы сможете в будущем извлечь его для выделенного уровня отчетности.

Другие советы

Согласен с сообщением Манвуда - вам следует создавать их как отчеты (при необходимости помещать в отчеты sproc) по следующим причинам:

  • Вы можете запустить отчеты и отобразить их через элемент управления отчетом.Это довольно просто сделать.

  • Вы (и что более важно, другие люди, поддерживающие приложение), можете расширить приложение с помощью большего количества отчетов, не выпустив еще одну сборку приложения.Это весьма полезная функция, если вы не хотите быть привязаны к поддержке приложения.

  • Вы также можете опубликовать отчеты через службы отчетности.

  • Вы получаете все варианты экспорта данных о отчетных услугах (Excel, CSV, PDF и т. Д.) С структурой служб отчетности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top