2009-05-25 4 views
1

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:

  1. Es wird eine sein Desktop-Anwendung
  2. 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)

Antwort

7

Ultra langfristig? 10 Jahre? COBOL wird immer noch benutzt!

Scherz beiseite, ich glaube WPF ist Ihre beste Wette. Microsoft hat in den letzten Jahren stark in WPF und XAML investiert, und die Nutzung der gleichen Kerninfrastruktur auf Silverlight (um die sich Microsoft wirklich kümmert) ist ein starker Punkt dafür, dass man sich für genug Zeit daran hält. Ich denke nicht, dass WPF so schnell weggeworfen wird.

+0

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 ... –

+0

"Silverlight (was Microsoft wirklich wichtig ist)" fünf Jahre später ist dieses Zitat lustig ... – Yaurthek

7

Die Tatsache, dass die Benutzeroberfläche von Visual Studio 2010 in WPF neu geschrieben wurde, ist ein ziemlich starker Beweis dafür, dass sie es für einige Zeit unterstützen werden.

1

Die WPF-Adoptionsrate ist immer noch ziemlich niedrig, obwohl es scheint, dass Microsoft in den nächsten Jahren mehr und mehr in diese Richtung ausgerichtet wird. Sie können nicht außergewöhnlich glücklich darüber sein, aber es ist die einzige solide Option, die in den Sinn kommt.

+1

"Vielleicht ist es nicht die beste Option, aber es ist die einzige, die Sie haben." so ist es das beste;) –

+0

du weißt was ich meine, aber ok ich werde mich selbst bearbeiten :) – Ivan