我参与了一个项目,其中一个开发团队正在构建一个非常长期的基础设施项目,以取代现有的10年历史的系统。 “非常长期”我的意思是从发布时起,它必须在未来运行,支持和维护至少10年。考虑到〜2年的发展,这意味着我们现在应该选择一种技术/语言/框架来持续至少12年。我们完全控制运行项目的计算机,操作系统等。我是将要被替换的10年前系统的开发者,我正在帮助团队建立新的系统。选择C#与WPF超长期项目?
该应用程序具有非常复杂的用户界面。 UI是在启动时从配置文件动态构建的,每个UI组件都依赖于逻辑和其他UI组件,它们必须在运行时接收。 UI元素本身是非常复杂的,想象的定制仪表,图表,旋钮等
两种选择已经在对项目进行了,我不判断或尝试改变:
- 这将是一个桌面应用程序
- 将在C#开发
现在我们在选择正确的框架的一个点,使我们非常灵活的UI系统“易于开发”,即依靠降低开发者的错误数量在已调试的,已经制作的框架上。
该团队审查了微软的CAB(复合用户界面),它非常适合它的用途,但事实上微软在2007年停止使用这个事实是一个考虑到项目长期方面的巨大问题(想想一个框架bug在6年内被发现 - 谁会提供支持? - 我知道我们可以在CAB中修改代码,但这是我们想要避免的)。
显而易见的一件事是依靠微软的WPF。它似乎是UI开发的“未来”,但它在长期考虑这个问题时会吓到我。我主要关心的是市场不会接受它,从现在开始3年微软将停止它,并且从现在起6年,我将无法得到适当的支持。
但是,除了编写我们自己的框架之外,我并没有真正看到其他选择。我不想不尊重任何第三方框架开发人员,但对于这样一个长期项目,我只能使用来自非常成熟的供应商的产品/框架/等。
我很感激对于选择WPF是否是给定上述上下文的正确调用(如果不是这样 - 对于使用C#的这样的长期桌面应用程序项目来说什么是正确的“复杂UI框架”?)。
谢谢(对不起长问题)
感谢您提供丰富的答案。关于你的笑话 - 我真的认为,在我们的日子里,计划未来10年几乎是不可能的,因为软件和硬件厂商推动我们每2-3年进行一次升级的速度...... – 2009-05-25 10:31:43
“Silverlight(微软真正关心的)”五年后,这句话很有趣...... – Yaurthek 2014-04-28 09:33:39