Das Unternehmen, für das ich arbeite, verwendet C ++ Builder 6. Seit der Konzeption entwickeln wir nativen Code. Unser Flaggschiff-Produkt ist vollständig in nativem Code geschrieben.
Betritt das .NET Framework mit seinen Schnickschnack. Ich falle, hake, schnüre und versinke. Ich bin davon überzeugt, dass .NET unbedingt unser neues Framework für die gesamte neue Softwareentwicklung sein sollte und dass wir so schnell wie möglich mit der Migration unserer vorhandenen Codeline beginnen sollten. Bei all den Vorteilen braucht es nicht viel Überzeugungsarbeit. Sie akzeptieren meinen Vorschlag wie gewohnt.
An diesem Punkt beginne ich mit der Entwicklung meiner ersten .NET-Anwendung. Es läuft alles wie geplant. Das Projekt ist nur eine Komponente unseres Produkts. Und so komme ich dazu, ein Installationsprogramm für diese neue Komponente zu erstellen. Als Unternehmen sind wir stolz darauf, die Dinge für den Benutzer so einfach wie möglich zu gestalten. Selbst Microsoft mit Tausenden von Entwicklern erstellt keine Installationsprogramme wie wir. Wenn Sie beispielsweise Microsoft CRM installieren, erhalten Sie nur eine Liste der Fehler und Voraussetzungen, die installiert werden müssen, bevor Sie fortfahren können. Nicht wir. Noch nie. Wenn Sie etwas benötigen, werden wir es für Sie installieren.
Dadurch fühlen sich unsere Installationen so einfach an. .NET Framework nicht installiert? Kein Problem! Wir erledigen das für Sie. Benötigen Sie einen SQL Native-Client? Fein!
Das Problem ist, dass jetzt, da eine einzelne Komponente unserer Lösung in .NET geschrieben ist, der Installationsprozess unglaublich kompliziert wird. Bevor ich überhaupt mit der Installation unseres Produkts beginnen kann, muss ich Folgendes tun:
Ermitteln Sie, ob die Voraussetzung installiert ist
Installieren Sie es, wenn dies nicht der Fall ist
Stellen Sie sicher, dass es erfolgreich installiert wurde
Nächste Voraussetzung
Um .NET Framework zu installieren, benötige ich zuerst Windows Installer 4.5. Es gibt jedoch unterschiedliche Versionen für die verschiedenen Betriebssysteme. Daher füge ich die Betriebssystemerkennung hinzu und starte die richtige EXE-Datei. Oh, .NET Framework ist bereits mit 2k8 gepackt und die Installations-Exe kann nicht darauf ausgeführt werden. Sie müssen OCSetup.exe mit Parametern ausführen, um es zu installieren.
Und so geht es weiter. Dann muss SQL Express 2005 installiert werden. Die Abhängigkeiten nehmen wieder zu.
Ich argumentiere mit dem Management, dass selbst Microsoft es dem Benutzer nicht so einfach macht. Ihre Antwort ist, dass es keinen Grund für uns gibt, auf diese Weise nicht besser als sie zu sein. Ich kann damit nicht streiten, außer dass ich das Gefühl habe, dass es sehr gute Gründe gibt, warum sie sich für ihren Ansatz entschieden haben.
Plötzlich ist unser Installer massiv. Alle Voraussetzungen für .NET, nicht einmal die 64-Bit-Unterstützung, für die eine ganze Reihe von EXE-Dateien installiert werden müssen. Jetzt ist es soweit, dass Benutzer eine "schnelle" Bewertung herunterladen können. Was für ein Witz. Sie müssen 500 MB herunterladen, um eine 30 MB-Anwendung auszuführen. Der Großteil des Installationspakets sind Voraussetzungen.
Das Management ist der Ansicht, dass wir zu viele Abhängigkeiten / Voraussetzungen haben. Ich verstehe vollkommen. Sie schlagen vor, dass wir uns vom .NET-Framework entfernen und in ein Heimatland zurückkehren, in dem die Installation noch "einfach" war. Hier möchte der eine Teil von mir für .NET eintreten und die Vorteile im Großen und Ganzen, die verbesserte Entwicklungserfahrung, die einfachere Wartung und die allgemeine Codequalität erläutern. Der andere Teil von mir stimmt ihnen von ganzem Herzen zu! Für die Entwicklung in .NET müssen Sie lediglich zu viele andere Voraussetzungen installieren, was die Installation erschwert.
Ja, einige der .NET-Befürworter werden behaupten, dass alles auf einem gepatchten und aktualisierten Betriebssystem installiert sein sollte. Dies ist wahr, aber nicht alle Kunden haben dies, und wenn Sie einfach "Es tut mir leid, zuerst aktualisieren" sagen, wird dies nicht gekürzt. Denken Sie daran, wir sind stolz auf die allgemeine Benutzererfahrung.
Wir denken jetzt darüber nach, wieder nativen Code zu schreiben, und ich weiß, dass wir an Entwicklungsgeschwindigkeit und allen Extras von .NET verlieren. Aber wir gewinnen in diesem Bereich, sei es klein, ob Sie das große Ganze betrachten oder nicht. Da wir über native Kenntnisse in der Codeentwicklung verfügen und .NET für uns tatsächlich Neuland ist, ist es sogar sinnvoll, zurück zu gehen.
Meine Frage lautet: Wie beurteilt Ihr Unternehmen dieses Problem, wenn es überhaupt ein Problem ist, und wie wird der Geschäftsfall aussehen, den ich dem Management vorschlage, vorausgesetzt, ich möchte weiterhin alle unsere Produkte auf .NET migrieren?