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!
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
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
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
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:
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 |