• 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很好,但是会带来更高的设计与编码复杂度。

    大家觉得呢?

  • 相关阅读:
    值传递和引用传递(不是引用类型的传递)的区别
    字符串一旦定义,就表示开辟好了指定的空间,其内容就不可改变
    String类的直接赋值和构造方法赋值的区别
    字符串常量是String类的匿名对象
    Integer和int的区别(转)
    final的好处
    数组引用传递
    构造代码块
    ==和equals()的不同点
    Redis数据类型底层实现
  • 原文地址:https://www.cnblogs.com/nankezhishi/p/1377348.html
Copyright © 2020-2023  润新知