Frage

[Hintergrund]

Also, ich habe eine C # Anwendung, die geschrieben wurde, bevor ich hierher kam. Ich bin nicht in dem dev org, zu dieser Zeit, aber ich bin die Tech Blei in meiner Untergruppe innerhalb des Internet-Marketing-org. Meine Aufgabe ist die Prozessautomatisierung, minimaler Desktop-Support und kundenspezifische Anwendungen, die unser Leben leichter machen.

[/ Hintergrund]

[App Details]

Wir haben eine App bekommen, die eine benutzerdefinierte Datenbankdatei aus einer Liste von URLs erstellt. Es wurde entwickelt, um eine Eingabedatei haben, und zwei Ausgabedateien für die beiden Anwendungen, die diese Art von db-Dateien verwenden. Die Regel für den Unterschied zwischen den beiden Ausgabedateien in den Code kompiliert.

[/ app Details]

Sollte ein intern C # app mit Business-Logik erstellt werden, die nicht geändert werden können, ohne es neu gebaut?

War es hilfreich?

Lösung

Interne Anwendungen haben ein Ziel: den Prozess unterstützen

.

Wenn die Regeln für die Erstellung der Ausgabe einfach, jeden Tag ändern und werden durch einen Benutzer niederlegen, ist es in den binären Kompilierung ist völlig falsch und eine Investition in eine GUI und eine neue Reihe von Programmierern viel Gutes tun konnte. Wenn die Regeln komplex sind, ändern einmal im Jahr und werden vom Management beauftragt, nachdem sie in die binären kompilierten ist eine einfache, kostengünstige Möglichkeit, sie zu erhalten und Benutzer zu verhindern, mit den Interna Hantieren.

Wie immer die Antwort muss sein, „es kommt“.

Andere Tipps

Wenn die Logik in regelmäßigen Abständen geändert wird, sollten Sie es in das Programm den Aufbau vermeiden. Auf der anderen Seite, da es intern ist, ich nehme an, dass der Prozess die App ist minimal oder nicht existent für den Wiederaufbau erforderlich ist, so kann es nicht viel Unterschied machen.

  • Wie lange dauert es, Business-Logik zu ändern und dann neu kompilieren?
  • Wie lange wird es dauern, Business-Logik zu ändern, ohne in der neuen Version neu zu kompilieren?
  • Wie lange dauert es, bis es neu zu kodieren?
  • Wie wird sich dies auf maintainence in Bezug auf zusätzliche Stunden in der Zukunft verbracht?
  • Sind irgendwelche der Leute, die die App brauchen nicht in der Lage, die Business-Logik zu ändern, weil es in Codeform ist?

diese 5 Fragen zu beantworten, wird eine Antwort erhalten.

Wenn die Logik muss nicht dann geändert werden, ja es sollte wohl zusammen mit dem Code kompiliert werden.

Auf der anderen Seite, wenn es bestimmte Faktoren, die das Verhalten dieses Geschäftslogik ändern könnte, dann sollten Sie wahrscheinlich einen Mittelwert von schaffen es wie XML-Konfigurationsdateien zu ändern, die sein Verhalten zu ändern.

Sicher, wenn Sie wissen, dass das Dienstprogramm nur innerhalb Ihrer Organisation und für einen einzigen Zweck verwendet werden, es ist nichts falsch mit Ihrem Geschäftsregeln mit der Logik zu mischen. Over-Gestaltung (in diesem Fall macht Code wiederverwendbar, wenn es nie wieder verwendet wird) wäre eine effiziente Nutzung von Ressourcen nicht sein.

ich in der Regel mehr Konfigurationsstrategien basierend auf Änderungswahrscheinlichkeit beschäftigen.

Vor allem nie setzten Geschäftsregeln in Code, ohne sie in irgendeiner Art und Weise-Dokumentation. Code hat eine Menge von Variablen und einige von ihnen nur sicher geändert werden können, während immer noch das richtige Verhalten beibehalten wird. Ich habe normalerweise eine Konstante zu Beginn der Klasse zu identifizieren, welches Verhalten geändert werden kann, das heißt

// Prefer this
const int AllowDownloadAttempts = 2;
if (AttemptDownload() > AllowDownloadAttempts) RegisterAndAllowDownload();

// Over this
if (AttemptDownload() > 2) RegisterAndAllowDownload();

Eine Grundregel Ich folge ist etwas anderes als [-1, 0, 1] ist zu dokumentieren.

Wenn es nicht kritisch, und wahrscheinlich nicht oft ändern, als ich es in der Anwendungskonfigurationsdatei platzieren würde (zB App.config) und greifen Sie über eine stark typisierte Konfigurationsklasse, so dass Sie den Überblick über ihren Gebräuche halten können zu wissen, wann sein sicher zu entfernen oder zu ändern.

Wenn es braucht dann durch Business-Anwender häufig oder geändert geändert werden ich sie in einer Datenbank gespeichert werden soll und eine einfache GUI zur Verfügung stellen, es bearbeiten sie dann in eine Last stark typisierte Konfigurationsklasse, wenn die Anwendung geladen wird.

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