Zitat von
p80286:
Aber wenn der Kunde es will, nachdem man ihn freundlich und sachlich auf die Nachteile hingewiesen hat....
Wenn ich es richtig verstehe, ist es nicht nur ein einziger Kunde / Anwender. Bei einem Kunden eine besondere Logik verwenden - das macht es noch weitaus schlimmer als befürchtet
Ich habe schon einigen Code gesehen (und auch schreiben dürfen) der nach diesem Muster ablief:
Delphi-Quellcode:
case Mandant of
1234: ExecAuftragsMaskeFuerKunde1234;
6789: ExecAuftragsMaskeFuerKunde6789;
else
ExecNormaleAuftragsMaske;
end;
Das macht Spass, vor allem wenn man nach Änderungen alle Mandanten (Kunden) testen darf um ungewollte Seiteneffekte zu finden.
Eine andere 'beliebte' Lösung für mandantenspezifische Logik ist es, das Programm zu forken und dann je Kunde (Anwender) eigene Quelltextzweige zu pflegen (jeweils mit eigenen Testdatenbeständen, Dokumentationen etc.). Eine nie versiegende Quelle der Freude bei übergreifenden Änderungen, wenn 3000 Formulare (dreißig Mandanten x zehn Anwendungsmodule x zehn Formulare) von Delphi 7 auf Delphi 2009 umgestellt werden müssen
Cheers,
Michael Justin