我想知道是否有人在那里有WPF应用程序开发的经验 - 也许更有趣 - 在生产中运行WPF.
它是否足够成熟,可用于大型项目?有哪些明显的陷阱?任何最佳做法?(WPF中的数据绑定看起来很漂亮,但是它可以在"真正的"项目中运行吗?)
提前致谢!
WPF推出了.NET 3.0.我们使用的是3.5 sp1,所以如果它没有生产就绪,MS已经有很多essplainin要做了.坦率地说,当3.0出现时,它已经准备好了.
我目前正在开发一个使用WPF进行模板化和数据绑定的项目(不是用于UI显示,而是使用UI类来定义模板).我也使用WPF作为个人用品.而且,坦率地说,即使考虑使用Windows窗体用于UI,我也必须受到严厉打击.WPF的简洁性和灵活性非常出色.它的数据绑定设施与黑客合并的窗体绑定模型相比非常壮观.而XAML是软件设计的一个革命性步骤,即imho.
WPF中的数据绑定不仅仅是漂亮的,它还允许您实现一些非常好的架构设计. 这是一篇很好的帖子,涵盖了一些比较流行的帖子. 可以把它想象成类固醇的MVC/MVP.
长话短说,跑.不要走路.
我不确定它是否适用于大型产品,但它肯定适用于中型数据库驱动的应用程序,如果这是你的一杯茶.我使用WPF + SQL Server 2008创建了一个患者管理系统,并没有那么多麻烦.
陷阱 - 我有一个 - 字体.说真的,你如何解释你的非技术娴熟的客户,没有什么可以改善XP上的WPF字体渲染?这个领域非常痛苦,看起来并不像微软正在解决它.(如果我错了,请纠正我.)
最佳做法?嗯,是的,你提到数据绑定,虽然效果很好,但当然它会在某种程度上抑制清晰的层分离.我实际上认为,从WinForms时代继承的大多数意识形态仍然适用,前提是你已经设法开始以不同的方式思考UI.我对WPF的最佳实践是使用代码生成将数据库映射到一系列控件中WrapPanel
.实际上,这些包装面板很棒,因为它们可以扩展到任何屏幕尺寸,并且布局实际上感觉光滑自然.
我会说是的,它已经准备就绪,已经有一段时间了,但是有一些警告:
工具远非完美.虽然文本模式下的自动完成功能很好,但Visual Studio设计界面很糟糕.Blend是一款出色的产品,但仍然不稳定(实际上它不应该是这样)而且它与XAML的"松散耦合"可能非常烦人.
性能.如果您开始使用精美的图形,效果和动画(甚至是微妙的图形),那么您需要密切关注目标平台.将一些在您的开发平台上运行良好的东西放在一起非常容易,但在"客户端"PC上像三脚驴一样运行.
学习曲线.虽然我认为WPF的陡峭学习曲线有点过于苛刻,但是开始以"WPF方式"思考需要一些时间,并且通常有很多方法可以做大多数事情.例如,大多数开发人员将使用绑定/重新绑定而不是使用ObservableCollection等创建他们的第一个WPF应用程序.