Was wäre, wenn in der Struktur eines Repositorys normalerweise etwas getan wird, um bereitgestellte Einheiten widerzuspiegeln?

StackOverflow https://stackoverflow.com/questions/55823

Frage

Dies ist eine Fortsetzung der Frage:

Sollten die Ordner in einer Lösung mit dem Namespace übereinstimmen?

Der Konsens zu dieser Frage war ein qualifiziertes „Ja“:Das heißt, Ordner == Namespaces im Allgemeinen, aber nicht sklavisch (wie es Java erfordert).

Genauso baue ich Projekte auf.

Aber das Einrichten der Quellcodeverwaltung hat mich hinsichtlich meiner aktuellen Ordnerstruktur zögern lassen.Wie beim .NET Framework stimmen die Namespaces in meinem Projekt nicht immer eins zu eins mit den bereitgestellten Einheiten überein.Sagen wir, das haben Sie

lib             -> lib.dll
lib.data        -> lib.dll
lib.ecom        -> lib.ecom.dll
lib.ecom.paypal -> lib.ecom.paypal.dll

Mit anderen Worten: Untergeordnete Namensräume können mit dem übergeordneten Namensraum ausgeliefert werden oder auch nicht.

Sind die Namespaces, die gemeinsam bereitgestellt werden, in irgendeiner Weise gruppiert?

Übrigens verwende ich weder VS noch NAnt, sondern nur die guten, altmodischen Build-Batches.

War es hilfreich?

Lösung

ich in der Regel nicht wirklich darüber denken und tun nur „was sich richtig anfühlt“, aber ich in der Regel unter Verwendung von Namen, die am Ende die folgende Strategie ziemlich gut passen.

Ich werde den höchsten gemeinsamen Namensraum im Baum für den DLL-Namen verwenden wie Sie zu tun scheinen;

mit lib und lib.data diesem lib so die DLL lib genannt. Mit lib.ecom und lib.ecom.paypal dies lib.ecom so die DLL aufgerufen wird ecom.

In einigen Fällen können Sie über Dinge, die ein bisschen mehr zum Beispiel denken, müssen wir haben die folgenden Namespaces (Warnung, einfaches Beispiel kommen), und wir wollen diese in zwei DLL

myapp.view
myapp.presentation

myapp.model
myapp.dataaccess

Wir können nicht myapp verwenden, weil dann würden wir zwei myapp Baugruppen haben. In diesem Fall verwende ich den Namen des Namespace, der am besten geeignet ist. Die erste könnte myapp.presentation und die zweite myapp.model genannt werden, wenn diese Namensräume die wichtigsten sind.

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