куда сообщать генерацию кода. - PullRequest
1 голос
/ 16 ноября 2008

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

  1. UI
  2. DataAccess
  3. BusiessLogic
  4. 1010 * BusinessObjects *

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

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

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

Ответы [ 2 ]

2 голосов
/ 16 ноября 2008

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

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

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

0 голосов
/ 16 ноября 2008

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

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

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

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

  • Вы получаете все параметры экспорта данных служб отчетности (Excel, CSV, pdf и т. д.) с отчетностью Сфера услуг.

...