Frage

Ich habe eine Visual Studio-Lösung mit den folgenden Projekten:

  1. UI
  2. Data Access
  3. BusiessLogic
  4. Business

Ich habe jetzt eine Reihe von Code, die Berichte erzeugt, die als CSV-Dateien per E-Mail oder gespeichert werden gesendet.

Diese ReportGenerators Klassen nehmen in Business-Objekten und Ausgabe entweder Dateien oder Strings.

das Projekt würden Sie setzen sie in? Ich bin Neigung in Richtung auf eine Antwort, aber wollte sehen, was andere gedacht?

War es hilfreich?

Lösung

Ich würde ein separates Reporting-Projekt. Es gehört nicht in der Benutzeroberfläche (ich nehme an, sie laufen im Hintergrund) - es ist tatsächlich eine ‚Berichtslogik‘ Schicht.

Wenn Sie darüber nachdenken, wie Sie vielleicht reportng unterstützen, können Sie einen Backend-Service wollen, aber Sie können die Daten über einen Webservice als auch in der Zukunft machen möchten. Wenn Sie Benutzer zur Verfügung stellen müssen eine Front-End-Reporting-Einrichtung, die Sie in die Berichtslogik stecken wie ein normaler UI -> Logik -> Data Access Architektur.

Auch wenn Sie Ihren Reporting-Code aus trennen sind Sie dann frei, um es zu einem eigenen Bericht Tier in der Zukunft zu extrahieren.

Andere Tipps

A stimmt Manwood der Post - Sie sollten sie bauen, wie Berichte (eine sproc hinter den Berichten setzen, falls erforderlich) aus den folgenden Gründen:

  • Sie können die Berichte ausführen und anzeigen sie durch den Report Steuerung. Das ist ziemlich einfach zu tun.

  • Sie (und was noch wichtiger sind andere Menschen Unterstützung der Anwendung) kann erweitert die Anwendung mit mehr Berichte, ohne freizugeben eine andere Version von der Anwendung ab. Dies ist eine recht nützliche Funktion, wenn Sie nicht wollen, auf die Unterstützung der Anwendung gebunden werden.

  • Sie können die Berichte veröffentlichen durch Reporting-Dienstleistungen.

  • Sie erhalten alle Daten-Export-Optionen von Reporting Services (Excel, CSV, pdf etc.) mit der Berichterstattung Services-Framework.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top