4 Stimmen

Wo sollte ich Enums definieren?

Ich richte eine neue App ein, mit einer Repository-Schicht/Assembly, einer Dienste-Schicht/Assembly und einer UI-Assembly.

Also habe ich am Ende Namensräume wie:

App.UI App.Biz.Dienste App.Data.Repositories

Und dann habe ich Enums für die Args, die von allen 3 Schichten verwendet werden. Der einzige Ort, an dem es Sinn macht, ist, sie in die Cross-Cutting-Baugruppe aufzunehmen. (Definieren Sie sie in Daten-Ebene zu niedrig, wie UI sollte keine direkte Referenz zu ihnen, definiert in Services, zu hoch für Repository-Ebene, die nicht nach oben referenzieren sollte).

Aber... welcher Namensraum in Common? Namespaces sollten hauptsächlich dazu verwendet werden, Belange zu definieren, und nicht Type... Ich habe immer etwas verwendet wie:

namespace App.Common.Enums {...} 

aber es hat sich immer ein bisschen wie ein Hack angefühlt, der für mich funktioniert, aber nicht gut in einer großen Organisation, in der jeder Enums erzeugt, und wenn wir sie alle in den Enums-Ordner legen, wird der Code-Ordner später schwerer zu verstehen sein.

Irgendwelche Vorschläge?

2voto

Samuel Neff Punkte 70231

Ich empfehle in der Regel eine eigene Assembly für gemeinsam genutzte Enums, Schnittstellen und Wertobjekte. App.Interop o App.Shared o App.Data.Values wären meine Namespace-Empfehlungen.

0voto

Scott Whitlock Punkte 13581

Ich habe eine Contracts-Assembly erstellt, und alles, was darin enthalten ist, befindet sich im Namespace der Root-Anwendung. Ich würde gemeinsame Sachen, wie Enums, die alles braucht Zugriff auf, in diesem Contracts DLL setzen.

Eine weitere gute Verwendung für diese Stelle sind Schnittstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X