Laden...

Auftrennung einer Solution

Erstellt von BigMAv vor 19 Jahren Letzter Beitrag vor 19 Jahren 1.452 Views
B
BigMAv Themenstarter:in
59 Beiträge seit 2005
vor 19 Jahren
Auftrennung einer Solution

Hallo zusammen

Ich arbeite mich gerade in eine umfangreiche Anwendung ein (Windows-Anwendung, C#, 1 Solution, 25 Unterprojekte, 1 Startprojekt).

Neben dem Startprojekt (welches die Bedienung der Anwendung enthält) gibt es 3 Projekte mit Basisklassen für die Anwendung. Die restlichen Unterprojekte sind Gerätetreiber.

Meine Aufgabe ist es nun, die Software um einen Teil zu erweitern, welcher dem bestehenden "Bedienungs-Teil" (Startprojekt) ähnelt. Ich habe aber keine Lust, die Anwendung weiter aufzublasen und ständig eine Rauchpause einlegen zu können, wenn ich neu builde.

Deshalb habe ich mir gedacht, ich mache eine neue Solution und verwende die Dll's des bestehenden Projekts (dann muss ich wenigstens nicht mehr so viel builden, an den Treibern ändert sich ja eh nichts).

Mein Problem ist nun aber, dass ich am Schluss eine Anwendung haben muss, d.h. ich muss meine Solution wieder ist Urprojekt einbingen. Das tönt für mich aber wie ein Zirkelschluss und ich weiss nicht, wie ich das "vernünftig" bewerkstelligen könnte.

Hatte jemand schon einmal ein ähnliches Problem und kann mir helfen, eine solche Trennung sinnvoll zu handhaben? Wie könnte ich sonst sicherstellen, dass ich nicht ständig alles in der Solution builden muss?

Gruss

"Apparently, 1 in 5 people in the world are Chinese. And there are 5 people in my family, so it must be one of them. It's either my mum or my dad......or maybe my older brother John. Or my younger brother Ho-Cha-Chu. But I'm pretty sure it's John."
1.373 Beiträge seit 2004
vor 19 Jahren

Normalerweise ist C# klever genug, um nur das zu rebuilden, was es sich oder wenn sich eine der importierten Referenzen geändert hat. Wenn also alle Treiber von einer Basisbibliothek abhängig sind, und die Basisbibliothek sich ändert, ist es klar, dass auch die Treiber neu kompiliert werden müssen - im Normalfall. Man kann nämlich genau einstellen, was überhaupt neu erstellt werden soll. Dazu findest du im Menu "Erstellen" den Konfigurationsmanager. Für jedes Projektmappenkonfiguration kannst du einstellen, welches Projekt in welcher Projektkonfiguration erstellt werden soll.

Übrigens: Verschoben nach Integrierte Entwicklungsumgebungen.

MfG VizOne

P.S.: in VS05 gibt es die Möglichkeit, einzelne Projekte zu entladen ohne sie aus der Projektmappe zu entfernen. Damit spart man auch noch Hauptspeicher.

P.P.S.: Technisch gesehen spricht nichts dagegen, wenn du eine neue Solution machst, und da nur die Projekte reinholst (Hinzufügen->Vorhandenes Projekt), die du zum jeweiligen Zeitpunkt benötigst. Ein Projekt kann in mehreren Solutions registriert sein. Aber wie gesagt, kannst du dein Problem auch leicht über den Konfigurationsmanager lösen.

B
BigMAv Themenstarter:in
59 Beiträge seit 2005
vor 19 Jahren

Hallo VizOne

Danke für die schnelle Antwort!

Das mit dem Konfigurationsmanager habe ich auch schon einmal kurz angeschaut, habe dann aber beschlossen, diesen Weg nicht zu gehen, da ich an viiiiielen Stellen #if (DEBUG) im Code habe (Simulationsmodus beim Entwickeln).

Ich habe mir nun gedacht, ich trenne die Treiber sauber vom Rest der Solution ab (haben keine vererbten Elemente) und packe sie in eine eigene Solution. Dann binde ich dann in die Solution mit der eigentlichen Bedienung ein. Dann habe ich halt immer noch das Problem, dass ich die zweite Bedienung in die vorhandene reinflechten muss, aber das kann ich wohl nicht umgehen, wenn ich eine Anwendung haben will. Ich habe zwar mal etwas über verteilte Anwendungen gelesen, aber da verbrenn ich mir im Moment lieber noch nicht die Finger dran.

Gruss

"Apparently, 1 in 5 people in the world are Chinese. And there are 5 people in my family, so it must be one of them. It's either my mum or my dad......or maybe my older brother John. Or my younger brother Ho-Cha-Chu. But I'm pretty sure it's John."
1.373 Beiträge seit 2004
vor 19 Jahren

Ich hatte eigentlich viel mehr daran gedacht, dass du im Konfigurationsmanager das Häkchen in der letzten Spalte ("Erstellen") für die Treiberprojekte wegmachst. Dann werden diese Projekte nicht mehr neu erstellt, auch wenn sich die Basisbibliothek ändert. An den einzelnen Projektkonfigurationen brauchst du ja nicht herumzuschrauben. Oh, und das "reinflechten" eines Projekts in die bestehende Solution bestünde aus einem "Hinzufügen->Vorhandenes Projekt" und fertig.

MfG VizOne