WPF为我们带来了什么?

正在做的一个项目就是用WPF做的。项目初期做DEMO时也是,同时也是CTO推荐的。但是CTO的考虑却和我们不一样。

 

记得做DEMO时,把东西给CTO看后,得到的反馈之一是,为什么用WPF做这么点儿功能用了这么久?怎么还要写逻辑?

 

不知道CTO是不是只看过WPF的广告,而没有自己涉足过。似乎在CTO的观念中,WPF是可以极大地减少代码逻辑,增加开发效率的新技术。如果XAML不属于代码的话,前半句算是正确的。但是后半句无论如何是不能做为结论的。要完成功能,就要有逻辑,无论用什么技术,总要把逻辑完整地表达出来。库多做一些,我们少做一些而已。

 

那么WPF为我们带来了什么呢?

 

评价总要有个比较的对象,就拿WinFormMFC作比较好了。

 

相对于上面的两种技术,WPF高度抽象控件的外观表示,分离了控件的外观与逻辑、同时为分离界面与后台逻辑提供了可能。里面的CommandDataBinding其实就是为此服务的。而TemplateStyleAnimation等不过是UI抽象的必然附带结果。

 

由于是新发布的产品,不足也是难免的。最直接的一个就是XAML本身其实就是String,而在当前的Visual Studio 2008中进行重构是不会对XAML进行操作的(除了部分类名),增加了代码维护的成本。比如SpinCalandarDataTimePickerDataGridBalloon这些WinForm控件在当前的版本中并没有,.NET 4才会发布几个控件以弥补。现在WPF的缺陷在我的WPF Bug清单系列文章里也有部分描述。

 

另外,WPF中所推崇的MVVM很好,但是会带来更高的设计与编码复杂度。

 

大家觉得呢?

posted on 2009-01-16 23:16  南柯之石  阅读(730)  评论(5编辑  收藏  举报

导航