LabVIEWForum.de
Best Practice: wie mehrere ähnliche Projekte verwalten? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Best Practice: wie mehrere ähnliche Projekte verwalten? (/Thread-Best-Practice-wie-mehrere-aehnliche-Projekte-verwalten)



Best Practice: wie mehrere ähnliche Projekte verwalten? - LichterLichtus - 30.10.2016 20:55

Hallo zusammen,

leider habe ich in der Suche nichts hilfreiches gefunden.
Aber so ungewöhnlich ist meine Situation bestimmt nicht:

-ich habe mehrere Projekte, für die ich zuständig bin (ca 10 Stück, werden aber ständig mehr.........)
-diese Projekte sind sich sehr ähnlich (alle Queued Message Handler, gleiche Grundfunktionen,Acquisition, Logging, ect)
-diese Projekte unterscheiden sich etwas (zB. Datenerfassungshardware, Sortierung und Benennung der Kanäle, UI, ect.)
-ca. 100 +-50 Vis pro Projekt

Momentan verwalte ich diese Projekte so, dass ich für jedes Projekt einen Ordner habe, in dem alle VIs geordnet liegen. Kommt nun ein neues Projekt hinzu, kopiere ich einen "alten" Projektordner und passe das "alte" Projekt an, bis es passt.

Ich will gerne alle Projekte aktuell und auf einen Stand halten.
Wenn ich nun in einem beliebigen Projekt ein tolles neues Feature einbaue oder einen Bug löse, muss ich das bei allen anderen Projekten auch machen.

Das ist viel Arbeit und ich bin faul Smile. Außerdem kommen immer mehr Projekte dazu und ich könnte irgendwann den Überblick verlieren.

Meine Fragen hier sind:
Gibt es einen Königsweg?
Wie macht ihr das?
Was könnte ich machen?

Für alle Links / Diskussionen / Denkanstöße / Tipps bin ich dankbar.

Mit besten Grüßen
Lichter Lichtus


RE: Best Practice: wie mehrere ähnliche Projekte verwalten? - GerdW - 31.10.2016 10:08

Hallo Lichtus,

ich hatte ein ähnliches Problem, als ich in meiner aktuellen Firma anfing und mehrere Prüfstände zu betreuen hatte…

Meine Lösung:
- Die einzelnen "Projekte" mit möglichst identischem Unterbau gestalten. Diesen dann gleichen "Unterbau" in einen eigenen Ordner auslagern, auf den dann alle anderen zugreifen. Dieses Konzept ist schon in LabVIEW integriert und nennt sich "user.lib"!
- Möglichst SVN o.ä. verwenden…
- nur die Projekt-spezifischen Dinge bleiben im jeweiligen Projektordner

Zitat:diese Projekte unterscheiden sich etwas (zB. Datenerfassungshardware, Sortierung und Benennung der Kanäle, UI, ect.)
- projektspezifische Hardwaretreiber bleiben im Projekt…
- "Sortierung und Benennung der Kanäle" macht man User-konfigurierbar - und damit wieder für alle Projekte einheitlich! Ich habe hier die Möglichkeit vorgesehen, eine Excel-Tabelle mit allen möglichen Kanaleinstellungen einzulesen. Die Leseroutine liegt natürlichin der user.lib…
- "UI" ist Projekt-spezifisch…


RE: Best Practice: wie mehrere ähnliche Projekte verwalten? - LichterLichtus - 01.11.2016 08:16

Hallo Gerd,

danke erstmal für den Input.
Also werde ich so an die Sache dran gehen(vllt kannst du ja kommentieren, ob ich das alles richtig verstanden habe):

-als erstes wird der Unterbau(Main.vi, Logging ect.) möglichst universell gestaltet
(erstes Problem hier: das Main.vi ist das Frontpanel des Programms. UI unterscheidet sich aber von Projekt zu Projekt. Ich würde das dann evtl. durch mehrere bedingte Deaktivierungsstrukturen lösen. Mit jeweils anderen Symbolen im Projekt. Ist das effektiv?)

- dann kommt alles Wiederverwendbare in den USer.Lib (warum gerade da? Den User.Lib Teil des Programms dürfte man dann nicht ohne weiteres im Projekt ändern können. Ist das richtig?)

- dann jedes Projekt einzeln in SVN einbinden
Frage: sollte jetzt jedes Projekt den user.lib Teil mit im Repository haben oder soll der user.lib Teil ein eigenes Repository bekommen? (bin relativ neu bei SVN))


RE: Best Practice: wie mehrere ähnliche Projekte verwalten? - GerdW - 01.11.2016 08:39

Hallo Lichter,

als erstes wird der Unterbau(Main.vi, Logging ect.) möglichst universell gestaltet
Ja, genau.
Allerdings halte ich das "Main" eben nicht für "Unterbau", es stellt ja die Hauptroutine deines jeweiligen Projektes dar! (Das die verschiedenen Main.vi meiner Prüfstande alle sehr ähnlich aussehen, ist trotzdem gewollt. Schließlich soll der Prüfstandsfahrer ohne große Probleme auch mal einen anderen Prüfstand bedienen können.)

Zitat:dann kommt alles Wiederverwendbare in den USer.Lib (warum gerade da?
Die user.lib ist bei LabVIEW für deine "user-definierten" Bibliotheken gedacht - eben die VIs, die du oft und in vielen anderen Projekten nutzt…

Zitat:Den User.Lib Teil des Programms dürfte man dann nicht ohne weiteres im Projekt ändern können. Ist das richtig?
Doch, den kannst du durchaus auch vom Prüfstands-Projekt aus ändern - wenn du genau weißt, was du tust Big Grin
Da ja alles im SVN landet, hast du dank Versionierung immer die Möglichkeit, auf ältere Stände zurückzugehen…

Zitat:dann jedes Projekt einzeln in SVN einbinden
Ja, das halte ich für sinnvoll…

Zitat:sollte jetzt jedes Projekt den user.lib Teil mit im Repository haben oder soll der user.lib Teil ein eigenes Repository bekommen?
Ich verwende für die user.lib ein eigenes Repository - du willst die user.lib ja eben nicht in jedem anderen Projekt mit verwalten!


RE: Best Practice: wie mehrere ähnliche Projekte verwalten? - BNT - 01.11.2016 15:58

Ich würde die einzelnen wieder verwendbaren Bibliotheken als eigenständige Git-Repositories verwalten und in dem jeweiligen Projektverzeichnis halten. Ich würde sie nicht in der user.lib speichern.

In jedem Hauptprojekt können die zu benutzenden Bibliotheken als Git-Submodule mit der jeweils gewünschten Revision bzw. dem gewünschten Branch eingebunden werden.

Das hat den Vorteil, dass alle Projekte gleichzeitig und unabhängig voneinander gepflegt werden können. Durch Änderungen in einem Submodul in einem Projekt wird die Funktionsfähigkeit eines anderen Projekts nicht gebrochen. Später können die verschiedenen Revisionen bzw Branches eines Submodule kontrolliert zusammengeführt werden.

Gruß Holger


RE: Best Practice: wie mehrere ähnliche Projekte verwalten? - LichterLichtus - 01.11.2016 21:28

Ich habe gerade erst mit dem Thema Versionsverwaltung begonnen. Das hört sich für mich also ziemlich komplex an.
Würdet ihr mir als Einzelprogrammierer Git oder SVN empfehlen?

Warum sollten die wiederverwendbaren Teile nicht in user.lib liegen?


RE: Best Practice: wie mehrere ähnliche Projekte verwalten? - BNT - 01.11.2016 21:57

Git ist aus verschiedenen Gründen gegenüber Subversion zu bevorzugen. Einfach mal googlen.

Wenn die Bibliotheken in der user.lib liegen, gibt es sie nur einmal. Als Submodul würde man sie in jedem Projektverzeichnis individuell haben, eben in verschiedenen Versionen. Man kann dann sogar mehrere Projekte gleichzeitig mit konkurrierenden Versionsständen der Bibliotheken in den Submodulen öffen, weil jedes Projekt eine eigene Applikationsinstanz ist. Das sollte man aber besser nicht tun, um versehentliches crosslinking zu vermeiden.

Gruß Holger


RE: Best Practice: wie mehrere ähnliche Projekte verwalten? - LichterLichtus - 07.11.2016 13:03

Vielen Dank für eure Beiträge,

ich habe mich dazu entschlossen nur ein Projekt zu halten und bestimmte Teile davon über bedingte Deaktivierungsstrukturen auszuschließen.
Und ich verwende SVN (GIT will IT nicht, da SVN schon in der Firma bekannt ist)

Wiederverwendbare Module halte ich in einem separaten Ordner.

Gruß
Lichter


RE: Best Practice: wie mehrere ähnliche Projekte verwalten? - Cardinal1664 - 14.11.2016 11:24

Hallo zusammen

Wir haben in unserer Firma eine Labview "Project Template" erstellt und die meisten unserer SW's bauen darauf auf.
Schau mal hier:
http://www.ni.com/tutorial/14045/en/
http://etchingpathways.blogspot.ch/2013/12/labview-creating-custom-templates-and.html

In einer Maske kann der Projektname, Ordner,Icon usw. definiert werden.
Labview erstellt dann automatisch die Ordnungsstruktur und kopiert alle benötigten Files in den Ordner ohne das die ganzen File verlinkungen manuell angepasst werden müssen.


RE: Best Practice: wie mehrere ähnliche Projekte verwalten? - LichterLichtus - 16.11.2016 13:18

Danke, das ist natürlich auch eine gute Möglichkeit.

Ich hab das Gefühl, das ich mit den managen der verschiedenen Projekte und Module so ziemlich alles falsch mache, was man falsch machen kann.
Ständig fehlt irgendeine Abhängikeit, dann sind die UserLib VIs im Projektverzeichnis, und und und.