tags:

views:

350

answers:

4

Hello,

I'm involved in a project where a team of developers is building a very long term infrastructure project to replace an existing 10 year old system. By "very long term" I mean it must be operating, supported and maintained for at least 10 years into the future from the point of release. Taking into account ~2 years of development, this means we should at this point choose a technology/language/framework to last at least 12 years. We have full control over the computers running the project, their operating systems, etc. I was the developer of the to-be-replaced 10 year old system, and I'm helping the team build the new one right.

The application has a very complex user interface. The UI is built dynamically from configuration files at start-up, each UI component has dependencies on logic and other UI components, which it must receive in run-time. UI elements themselves are very complex, imagine custom gauges, graphs, knobs etc.

Two choices have already been made in the project, that I do not judge or try to change:

  1. It will be a desktop application
  2. It will be developed in C#

Now we are at a point of choosing the right framework to make our very flexible UI system "easy to develop", i.e. reduce the number of developer bugs by relying on a debugged, already-made framework.

The team examined Microsoft's CAB (Composite UI), which suited its purposes extremely well, however the fact Microsoft discontinued it in 2007 is a huge problem taking into account the long-term aspects of the project (think of a framework bug being discovered in 6 years - who will provide support? - and I know we could fix the code in the CAB itself, but that's something we would like to avoid).

One thing that obviously pops to mind is relying Microsoft's WPF. It seems to be "the future" of UI development, however it frightens me when thinking about it long term. My main concern is that the market will not accept it, that 3 years from now Microsoft will discontinue it, and that 6 years from now I will not be able to receive proper support for it.

However I don't really see an alternative, besides writing our own framework. I don't want disrespect any 3rd party framework developers, but for such a long term project I can only use products/frameworks/etc from very well-established vendor.

I would appreciate thoughts on whether choosing WPF is the right call given the above context (and if not - what is the right "complex UI framework" for such a long term desktop application project using C# ?).

Thanks (and sorry for the long question)

+7  A: 

Ultra-long-term? 10 years? COBOL is STILL being used!

Joking aside, I believe WPF is your best bet. Microsoft has invested heavily in WPF and XAML over the past few years and using the same core infrastructure on Silverlight (which Microsoft really cares about) is a strong point for sticking to it for enough time. I don't think WPF is going to be thrown away anytime soon.

Mehrdad Afshari
Thanks for the informative answer. About your joke - I really think in our days planning 10 years ahead is almost impossible with the pace in which software and hardware vendors are pushing us to upgrade every 2-3 years...
Roee Adler
+7  A: 

The fact that the Visual Studio 2010 UI has been rewritten in WPF is quite strong evidence that they'll support it for some time to some.

Ganesh Sittampalam
+1  A: 

The WPF adoption rate is still pretty low although it seems to me that Microsoft will be getting more and more oriented in that direction over the next years. You may not be extraordinary happy about it, but it's the only solid option that comes to mind.

Ivan
"Maybe it's not the best option, but it's the only one you have." so it's the best ;)
Nicolas Dorier
you know what I mean, but ok I'll edit myself :)
Ivan
+2  A: 
  1. Smart Client Contrib
  2. Prism

May be of help if you've not already looked at them.

Crippeoblade