Laden...

Programmstruktur - Ist aufteilung in einzelne Unterprojekte sinnvoll?

Erstellt von DavidK vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.931 Views
D
DavidK Themenstarter:in
3 Beiträge seit 2017
vor 7 Jahren
Programmstruktur - Ist aufteilung in einzelne Unterprojekte sinnvoll?

Hallo,

ich habe folgendes Problem:
Ich möchte eine möglichst saubere Programmstruktur erreichen und mir ist folgende Idee in den Sinn gekommen. Ich würde gerne einzelne Dienste (z.B. CAD anbindung) in ein eigenes Projekt auslagern und dieses dann im Hauptprojekt nur als Verweis einbinden und verwenden. Nun bin ich leider auf zwei wesentliche Probleme gestoßen die hiermit verbunden wären:1.Ich kann keine Objekte verwenden, die im Hauptprogramm definiert wurden, da ein Verweis nicht möglich ist (Ringverweis). 1.Bei verwendung von der selben dll in beiden Projekten kann zu schwierigkeiten kommen.(Der gleiche Objekttyp wird nicht als solcher erkannt)

Nun ist meine Frage, ob diese Aufteilung überhaupt sinnvoll ist, und wenn ja, wie ich diese Probleme lösen kann.

Vielen Dank im voraus!

2.207 Beiträge seit 2011
vor 7 Jahren

Hallo DavidK,

natürlich ist das sinnvoll und auch gängige Praxis. Daraus entsteht dann eine Architektur 😉.

Wenn du Circular References hast sollte man über ein drittes Projekt (als eine Lösung von mehreren) nachdenken.

Gruss

Coffeebean

D
DavidK Themenstarter:in
3 Beiträge seit 2017
vor 7 Jahren

Hallo Coffeebean,

vielen Dank für deine schnelle Antwort.

Nur um sicher zu stellen, dass ich das richtig verstanden habe:
Angenommen ich hätte eine Klasse Auto im Hauptprojekt und eine Methode CreateAuto(Auto auto) im CAD-Unterprojekt. Dann müsste ich jetzt ein weiteres Project erzeugen, dort die Klasse Auto hineinverschieben und diese dann in beiden anderen Projekten referenzieren.

Würde das dann nicht in einer zu aufgeteilten Struktur resultieren? Oder ist es irgendwie möglich die Klasse Auto in Hauptprojekt zu lassen und sie dennoch als Parameter der Methode CreateAuto zu verwenden?

Gruß,
DavidK

P
1.090 Beiträge seit 2011
vor 7 Jahren

Hallo DavidK,

ließ dir mal den Artikel zur Drei Schichten Architektur durch und vielleicht auch die Diskussion.

Wenn du jetzt die Anwendung aufteilst, bietet es sich auch an nicht direkt gegen die Klassen zu Implementiern sondern gegen ein Interface und dir dann die Abhänigkeiten mit einem IoC-Contaioner aufzulösen.

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern

2.298 Beiträge seit 2010
vor 7 Jahren

Würde das dann nicht in einer zu aufgeteilten Struktur resultieren? Oder ist es irgendwie möglich die Klasse Auto in Hauptprojekt zu lassen und sie dennoch als Parameter der Methode CreateAuto zu verwenden?

Wenn du in einem Unterprojekt eine Methode "CreateAuto" hast, dann gehört Auto entweder in das Unterprojekt oder aber wie angesprochen in ein weiteres Projekt auf das Hauptprojekt und Unterprojekt verweisen.

Normalerweise ist es ja so, das du eine Hirarchie hast die von oben nach unten geht. - Das heißt, Klassen die du in Unterprojekten benötigst, dürfen und können garnicht im Hauptprogramm existieren.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

D
DavidK Themenstarter:in
3 Beiträge seit 2017
vor 7 Jahren

Vielen Dank für eure Antworten. Ich werde mir das mal anschauen 😃