Standardprodukt: Anpassung an Kundenwunsch

30/10/2008 - 19:32 von Richard Daehne | Report spam
hallo,

wir planen ein Standardprodukt in VB.NET. Nennen wir es eine
Lagerverwaltung.
Vorlage existiert in VB 6.

Technik:
- SVN zur Versionsverwaltung

Bisher:
- für jeden Kunden existiert eine eigene Ordnerstruktur in SVN
- innerhalb des Kundenverzeichnis wurden Anpassungen am Quellcode gemacht
=> es ist kaum möglich einem Kunden die neue "Standard"-Version zu geben,
denn dadurch würden alle seine Anpassungen verloren gehen.

Neu:
- in neuen Projekten setzen wir bereits Subsonic ein, um die
3-Schicht-Architektur umzusetzen
- wir wollen gleich von Anfang an berücksichtigen, dass ein Kunde mit
geringem Aufwand die Standard-Version bekommen soll
- gleichzeitig müssen wir pro Kunde Anpassungen am Standard vornehmen
können: zB neue Felder anlegen, bestehende Felder ausblenden, vielleicht
sogar ein völlig neues Fenster.

Meine Fragen:
wie lösen andere das Problem?
Viele Standardprodukte liefern einen Formulardesigner mit (zB Outlook oder
der Adressmanager von combit).
Da steckt also die Definition, wie ein Fenster aussieht, in der Datenbank
oder in einer XML-Datei.
Aber: wie kann man das Projekt dann 3-schichtig programmieren? (das geht ja
dann wohl nicht)
Was passiert, wenn sich Geschàftslogik auf ein Feld bezieht, das der Kunde
aber gar nicht haben will.
Wie wird ein Software-Update gemacht, wenn man sich die Formulare (und damit
die Datenbank) angepasst hat?

Meine Ergebnisse bisher:
- wenn ich Formulare ohne Quellcodeànderung designen will, kann ich nicht
3schichtig programmieren.
- wenn man "nur" neue Felder braucht, könnte man das so umsetzen:
der "Standard" enthàlt alle jemals benötigten Felder. Für manche Kunden
werden die nicht benötigten einfach ausgeblendet.
anderer Workflow pro Kunde ist dann nicht möglich, außer man
parametrisiert diesen in der Datenbank bzw. in XML-Konfiguration.
- die "große" Lösung wàre, dass man den Quellcode für jeden Kunden in SVN
abzweigt.
Wenn der Kunde die neue Standard-Version bekommen soll, muss man seine
Änderungen in eine wieder abgeleitete Standard-Version hinein-mergen.
=> Welche Versionsverwaltung kann das?


vielen Dank für alle Tips und Denkanstöße!

Richard Dàhne
 

Lesen sie die antworten

#1 Harald M. Genauck
30/10/2008 - 20:52 | Warnen spam
Hallo Rhichard,

wir planen ein Standardprodukt in VB.NET. Nennen wir es eine
Lagerverwaltung.
Vorlage existiert in VB 6.

Technik:
- SVN zur Versionsverwaltung

Bisher:
- für jeden Kunden existiert eine eigene Ordnerstruktur in SVN
- innerhalb des Kundenverzeichnis wurden Anpassungen am Quellcode
gemacht
=> es ist kaum möglich einem Kunden die neue "Standard"-Version zu
geben,
denn dadurch würden alle seine Anpassungen verloren gehen.

Neu:
- in neuen Projekten setzen wir bereits Subsonic ein, um die
3-Schicht-Architektur umzusetzen
- wir wollen gleich von Anfang an berücksichtigen, dass ein Kunde mit
geringem Aufwand die Standard-Version bekommen soll
- gleichzeitig müssen wir pro Kunde Anpassungen am Standard vornehmen
können: zB neue Felder anlegen, bestehende Felder ausblenden,
vielleicht sogar ein völlig neues Fenster.

Meine Fragen:
wie lösen andere das Problem?
Viele Standardprodukte liefern einen Formulardesigner mit (zB Outlook
oder der Adressmanager von combit).
Da steckt also die Definition, wie ein Fenster aussieht, in der
Datenbank oder in einer XML-Datei.
Aber: wie kann man das Projekt dann 3-schichtig programmieren? (das
geht ja dann wohl nicht)
Was passiert, wenn sich Geschàftslogik auf ein Feld bezieht, das der
Kunde aber gar nicht haben will.
Wie wird ein Software-Update gemacht, wenn man sich die Formulare
(und damit die Datenbank) angepasst hat?

Meine Ergebnisse bisher:
- wenn ich Formulare ohne Quellcodeànderung designen will, kann ich
nicht 3schichtig programmieren.
- wenn man "nur" neue Felder braucht, könnte man das so umsetzen:
der "Standard" enthàlt alle jemals benötigten Felder. Für manche
Kunden werden die nicht benötigten einfach ausgeblendet.
anderer Workflow pro Kunde ist dann nicht möglich, außer man
parametrisiert diesen in der Datenbank bzw. in XML-Konfiguration.
- die "große" Lösung wàre, dass man den Quellcode für jeden Kunden in
SVN abzweigt.
Wenn der Kunde die neue Standard-Version bekommen soll, muss man
seine Änderungen in eine wieder abgeleitete Standard-Version
hinein-mergen.
=> Welche Versionsverwaltung kann das?



Mensch 1.0?

Ich würde zumindest nicht von einer (egal welcher) Versionsverwaltung
eine an sich ungewollte, unvernünftige Architektur (nicht 3-schichtig
u.a.) der neuen Anwendung abhàngig machen. Denn dann fabriziert ihr
unterm Strich nur ein Mischmasch von Altem und Neuem und macht den
gewünschten Neustart zunichte. Und irgendwann in einigen Jahren wird
wieder ein Migrationsschritt zur nàchsten Technologie anstehen - und
dann steht ihr vor demselben Problem - dann aber mit einem Mischmasch
aus drei "Epochen".

Viele Grüße

Harald M. Genauck

"VISUAL STUDIO one" - http://www.visualstudio1.de (Chefredakteur)
"ABOUT Visual Basic" - http://www.aboutvb.de (Herausgeber)

Ähnliche fragen