Announcement

Collapse
No announcement yet.

Gibt es eine optimale Projektstruktur?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gibt es eine optimale Projektstruktur?

    Hallo,

    es gibt diverse Lehrmeinungen zur optimalen Strukturierung von Projekten, z.B. aus einem MS Artikel von 2002, wo empfohlen wird, möglichst nur mit einer einzigen Solution zu arbeiten, in die dann alle Teilprojekte eingehängt werden sollen. Dies, sowie die bevorzugte Verwendung von Projektreferenzen an Stelle einfacher Dateireferenzen würde zu bester Produktivität ohne Inkonsistenzschmerzen führen.

    Ein anderer Autor empfiehlt, prinzipiell jede Assembly (= Komponente) in einer eigenen Solution zu halten, die dann gleich auch entspr. Testprojekte für Unittests enthält. Die vielen Solutions werden dann möglichst mit externen Build-Tools auf einem Buildserver aktuell gehalten.
    Diese Variante erfordert, dass möglichst streng nach Contract First Design gearbeitet wird, wo ein jeder alle externen Assemblies aus dem gleichen Projekt nur über Interfaces referenziert und möglichst auch nicht über direkte Filereferenzen instanisiert. Stattdessen verwende man eine zur Laufzeit parametrisierbare Objectfactory, wie z.B. Microkernel oder einen der diversen Dependency Injection Container.

    Ich habe mal ein Projekt nach der 2. Variante (Multi-Solution) aufgesetzt, dann aber doch festgestellt, dass stabile Interfaces und die Verwendung von Mocks als temporärer Ersatz für noch nicht fertiggestellte Assemblies schön wären, aber leider nicht funktionieren "as advertised". Im Projektalltag gibt es öfters Störfeuer und dass ständige Hin- und Herspringen zwischen den Solutions, sowie der solutionübergreifende (komplizierte) Buildprozess scheinen mir aufwendiger als nötig zu sein.

    Wie verhält sich dagegen eine Single-Solution Lösung, wenn mehrere Leute daran arbeiten wollen? Ist sowas machbar oder empfehlenswert?

    Wie strukturiert ihr eure Projekte? Immer gleich oder mal so, mal anders?
    Ich könnte mir vorstellen, dass eine feste Struktur in einer Firma schon aus Wartbarkeitsgründen zu bevorzugen wäre.

    Gruß
    Ingo

  • #2
    Hallo,

    es ist wohl sehr schwierig zu sagen, ob es eine perfekte Projektstruktur gibt. Die Ansätze, die Du genannt hast sind doch schon einmal ein Anfang. Du kennst zumindest mehrere Ansätze.

    Falls Du in der Situation sein solltest, eine Projektstruktur aufbauen zu müssen, solltest Du sie Anhand der Anforderungen aufbauen.

    Alles in einer Solution zusammen zu fassen finde ich persönlich nicht so gut. Es kommt dabei aber wohl auf die grösse des Projektes und den Kenntnisstand der Entwickler an.

    Soll jeder alles einsehen können und überall mitentwickeln? Soll alles Modular sein und nur die entsprechenden Schnittstellen bekannt sein? Wird unterschieden zwischen Core-Entwicklern und UI-Entwickleern, bzw. DataLayer-Entwicklern? Alle diese Fragen solltest Du Dir erst einmal stellen und dann, die aus Deiner Sicht in Verbindung mit dem einzusetzenden Personal und der Projektgrösse pros ond cons aufschreiben.
    Gruss

    Mirko

    Mappen statt hacken mit dem .NET O/R Mapper Invist

    Comment


    • #3
      Hallo,

      Grundsätzlich stimme ich dem Vorredner zu.
      Allerdings wenn man alles in einer Solution entwickelt, hättest du den Vorteil, das wenn du Verweise innerhalb deines Projektes setzt die Pfade immer stimmen. Bei gesplitteten Projekten, kann es vorkommen dass ein anderes Arbeitsverzeichnis usw. angelegt wurde und du mit falschen Referenzen arbeitest.

      Andere Entwickler können sich ganz unabhängig von dir ihre eigenen Solutions mit ihren bzw. mit Teilprojekten von deinem Projekt machen.

      Grundsätzlich würde ich aber auch Core, DAL usw. strickt in unterschiedliche Projekte trennen und ganz nach SOA arbeiten.

      Comment

      Working...
      X