Ich bin an einem Projekt beteiligt, bei dem ein Team von Entwicklern ein sehr langfristiges Infrastrukturprojekt baut, um ein bestehendes 10 Jahre altes System zu ersetzen. Mit "sehr langfristig" meine ich, dass es vom Zeitpunkt der Veröffentlichung an für mindestens 10 Jahre in Betrieb sein muss, unterstützt und gewartet werden muss. Unter Berücksichtigung ~ 2 Jahren Entwicklung bedeutet dies, dass wir an dieser Stelle eine Technologie/Sprache/einen Rahmen für mindestens 12 Jahre wählen sollten. Wir haben die volle Kontrolle über die Computer, auf denen das Projekt läuft, über ihre Betriebssysteme usw. Ich war der Entwickler des zu ersetzenden 10 Jahre alten Systems, und ich helfe dem Team, das neue zu bauen.Wählen C# mit WPF für Ultra-Long-Term-Projekt?
Die Anwendung hat eine sehr komplexe Benutzeroberfläche. Die Benutzeroberfläche wird beim Start dynamisch aus den Konfigurationsdateien erstellt, wobei jede UI-Komponente Abhängigkeiten von Logik und anderen UI-Komponenten aufweist, die sie zur Laufzeit erhalten muss. UI-Elemente selbst sind sehr komplex, vorstellen, kundenspezifische Lehren, Grafiken, Knöpfe usw.
Zwei Entscheidungen sind bereits in dem Projekt gemacht worden, dass ich es beurteilen oder nicht versuchen, zu ändern:
- Es wird eine sein Desktop-Anwendung
- Es wird in C#
Jetzt entwickelt werden wir an einem Punkt sind der richtige Rahmen für die Wahl unserer sehr flexiblen UI-System „einfach zu entwickeln“, dh Verringerung der Zahl der Entwickler Fehler zu machen, indem sie sich auf einem debugged, bereits gemachten Rahmen.
Das Team untersuchte Microsofts CAB (Composite UI), das für seine Zwecke sehr gut geeignet war, aber die Tatsache, dass Microsoft es im Jahr 2007 einstellte, ist ein riesiges Problem, das die langfristigen Aspekte des Projekts berücksichtigt (denken Sie an einen Framework-Fehler) in 6 Jahren entdeckt werden - wer wird Unterstützung geben? - und ich weiß, wir könnten den Code in der CAB selbst reparieren, aber das ist etwas, was wir gerne vermeiden würden).
Eine Sache, die offensichtlich in den Sinn kommt, ist Microsoft WPF zu verlassen. Es scheint "die Zukunft" der UI-Entwicklung zu sein, aber es macht mir Angst, wenn ich langfristig darüber nachdenke. Mein Hauptanliegen ist, dass der Markt es nicht akzeptieren wird, dass Microsoft es in 3 Jahren einstellen wird und dass ich in 6 Jahren keine angemessene Unterstützung dafür bekommen werde.
Allerdings sehe ich nicht wirklich eine Alternative, neben unserem eigenen Framework zu schreiben. Ich möchte keine Framework-Entwickler von Drittanbietern missachten, aber für solch ein langfristiges Projekt kann ich nur Produkte/Frameworks/etc von einem sehr gut etablierten Anbieter verwenden.
Ich würde gerne Gedanken darüber, ob die Wahl von WPF ist der richtige Ruf angesichts der oben genannten Kontext (und wenn nicht - was ist das richtige "komplexe UI-Framework" für solch eine langfristige Desktop-Anwendungsprojekt mit C#?).
Dank (und sorry für die lange Frage)
Danke für die informative Antwort. Über deinen Witz - Ich denke wirklich, dass wir in den nächsten 10 Jahren fast unmöglich sind mit dem Tempo, in dem Software- und Hardware-Hersteller uns alle 2-3 Jahre aufrüsten ... –
"Silverlight (was Microsoft wirklich wichtig ist)" fünf Jahre später ist dieses Zitat lustig ... – Yaurthek