So ähnlich arbeiten wir auch, naja, Ansichtssache.
Wir haben keine Systeminfo je Fenster. Die
GUI Architektur stellt optisch überhaupt keine separaten Fenster dar, sieht eher wie ein klassischer Explorer aus. Technisch sind es allerdings verschiedene Forms.
Wie darf ich mir das bei Euch unter Delphi vorstellen?
MDI Anwendung und pro Fenster eine eincompilierte
DCU? Oder liefert Ihr auch separate
DLL aus?
Wir setzen unter .Net die Buildnummer nicht ein. Die MS Philosophie für die Buildnummern in .net ist mir auch nicht ganz einleuchtend.
Da wir Programmmodule nur bei Bedarf neu erstellen, verwalten wir separat statt des Builds noch eine Dateiversion pro Assembly projektübergreifend. Hier tragen wir eine durchgängige Nummer je Release ein. Die Buildnummer bleibt erhalten, solange sich der Code nicht ändert. Aus fachlicher Perspektive hat und braucht dann gar nicht jeder Anwender alle Assemblies.
Framework (Core Assembly), externe Assemblies und fachliche Assemblies sind also mehr oder weniger autark. Es gibt kein gemeinsames Build. Dabei ist es gewollt, dass einzelne Module nur nach Bedarf erweitert und deployed werden.
Im Backend verwenden wir GIT. Hier arbeiten wir auch mit tags für die Releases/Revisionen, aber die Sourceversionierung steht für mich hier nicht im Vordergrund. Es geht eher darum, wie man eine smarte Kontrolle der aktuellen/notwendigen Dateiversionen durchführt. Und wie könnte sowas automatisch in das Setup einfließen?
Am Ende hätte ich gerne trotz unterschiedlich breiter Deployments >eine< klassische Programmversion, wenigstens optisch. Hier würde ich mir aber anstelle der Buildnummer eher eine Art Prüfsumme vorstellen- je nachdem, welche Module geladen sind. Damit wäre allein die Programmversion beim Testing und für den Support schon wesentlich aussagekräftiger.
Mag sein, dass das unkonventionell ist. Aber ich krieg da einfach keinen besseren Dreh rein.