wpf和wdf的区别

    wpf&&wdf是两个不同产品,一个是webphere portlet factory,后者则是Workplace Dashboard Framework。他们的前身是bowstreet(Gartner Group评估的六家Web服务领域最领先的企业之一)的产品,原名是bowstreet portlet factory。后bowstreet被IBM收购,于是portlet factory也改名称之为IBM portlet factory了,只不过在这个基础上多了个dashboard。
    要把两个产品的异同说出来,看起来是非常简单,但是可能会让人有些混淆。两个东西说白了,其实都是soa编程模型的一个咚咚,都是可以可eclipse,rad之类集成,作为插件使用的。两个都是快速开发portlet的工具。唯一不同的就是dashboard更偏向于数据的展现。而portlet factory更倾向于业务逻辑。比较混淆的地方就是,dashboard安装后,就自动含有portlet factory所有的功能和builder了。这东西我也搞不明白了,不是IBM同一个产品线的东西,但是功能却是一个涵盖另外的一个所有功能(dashboard涵盖了portlet factory的所有功能),那么其实我们只要安装一个dashboard就够了,事实上我们的确一般只需要安装一个dashboard就足够。前面忘了提到的比较重要的一点是,portlet factory是免费的,dashboard是收费的。这个大概就是为什么dashboard涵盖portlet factory的所有功能的一个主要原因吧(让人感觉portlet factory是dashboard的试用版)。
    我研究dashboard是从portlet factory开始的,当初仅仅是为了个参数传递都折腾了老半天的。portlet factory,字面的意思是portlet 工厂。当然它的确是个portlet “工厂”,通过portlet factory做出来的东西都是可复用的,通过里面builder建的model,你可以随便复制到哪用使用,唯一的前提是要保证目录结构和目录名一致。它的开发过程是类似向导型。又有些像搭建积木,通过一块块的积木,你可以搭建成各式各样的工程。portlet factory里面的builder是里面的最小“积木”原型,通过这些builder,你可以构造出一个个有单独功能的model。并将model封装成一个服务,提供接口。供服务调用者使用。是个典型的soa模型。在portlet factory里面,所有的东西都可以做成一个服务,并提供给调用者使用。当然除了builder和model之外,portlet factory还有个比较重要的组件,profile(最难理解的一个东西),这个东西相当于是一个定制的东西吧,通过profile,你可以定制多套展示方案,可以为你的工程根据群组设置访问权限之类的。
    portlet factory还有个比较好的地方就是,在你建立工程之后,只要你不加portlet适配器builder将其构成一个builder,那么他就是个普通的j2ee应用程序。在调试的时候它也都是以j2ee应用的方式在运行。并且可以作为一个j2ee工程部署到was上面。当然这个其实并不是它的优势。它的优势在于它的快速开发和dashboard上面的数据的展现。这两个才是dashboard所以得卖点。
    至于dashboard就简单点说了,除了上述的之外,还有的就是它之所以大推特推的卖点(数据展现),dashboard的数据展现有着其它portlet开发工具所没有的数据展现能力,美观、大方、可定制、快速。这些综合起来,很少portlet 开发工具有这么强大的功能了。它包含了警报,预警、webchart等builder,可展示的图有雷达图、仪表盘、普通的柱图,曲线图之类、饼图等等等等。通过这些我们能够很清楚的对大量的数据进行分析。能够让使用者(一般都是领导级人物)快速的看到走向以及做出分析。因为有了这些功能和IBM做后台。所以产品能够“重推”吧
   
   
    在我看来,虽然俩产品都是打着soa理念,我并不排斥soa理念。有着很多外表胡里花哨的东西。而且做得东西的确很快,用rad我们做一个简单的只有一个小小功能的portlet,肯定得半个小时以上。但是用dashboard只需要2分钟,假如你熟悉了的话。但是wpf&&wdf还是劣迹斑斑。总的来说有以下理由
  
     一、产品不够成熟,虽然推出了这么久,但是这两个产品还是有不少的问题,bug挺多的。在开发中很容易出现的,比如中文问题,上次ibm专家过来解决过,使用的是IBM一向对问题的解决办法:打补丁包。还有类似的比如出现main null GB18030什么什么的问题,那个问题很常见。ibm的专家对dashboard和建立的工程里面的所有的factory打了个jar包重起下就ok了。事实上这个问题并没有得到解决,我们后来再次测试还是偶尔会有那个个问题存在。还有就是那个”SQL调用“builder“里面不支持中文,还有的就是在测试的时候是正常的,但是会出现随机性的不可用现象。这个问题如果出现在现场,我想用户可能受不了了。

    二、所谓的”灵活“,这里其实是相对的,可定不如直接用编程开发来的灵活的。但是我觉得他一点都没有灵活可言。就拿那个model复制来说吧,从产品介绍里面说是这个东西可以直接复制并使用的。但是如果你要是目录不同,或者说结构稍微有变,那么这个model就不可以使用了。还有比如数据源,如果两边数据源不一致,那么model复制过去肯定是会出问题的,这个时候如果你重新配置数据源那也得改下那里面用的”服务操作“builder,因为这个东西是在保存后立即和数据库连接并编译的。如果这个时候连接不到数据库会对后面的操作有影响的,并且会自动改变很多配置项。如果你不重新配置数据源,采用在builder里面重新修改成已有的数据源的话,那么它也会重新的改变后面的配置项,至于后面的操作,和你重新配置一个新的model是一样的。还有的就是dashboard的图表的展现。倒还不是那么不灵活的,可以采用webchart绘图之后把xml复制过去,然后对所需要展示的图表的样式改称链接这个xml就可以了。从这些来讲,其实它是非常笨的一个东西的。

        三、入门容易,学好很难。虽然说java入门容易,但是这个东西入门更加容易,你要想成为一个普通的copy型的程序员,我建议就学portlet factory算了。好歹更易入门。只要是一些比较简单的业务逻辑没有什么编程基础的人都能够做出来的。但是要想学到和非常的深,象java中高级程序员一样,那么你得付出比用java学到同样水平的java程序员更努力了!据上次培训老师说,国内使用过三分之一以上的builder的人都不多,如果你能学到三分之二,那也能算个不错的高手了。用到过所有的builder的人,在全球估计都是独孤求败了!

    四、不适合做复杂业务逻辑的东西,wpf只适合做些难度一般以下的业务逻辑的东西。如果逻辑过于复杂的话,受灵活性限制,估计要写些程序来控制了,还有就是逻辑过于复杂的话,配置项也不能够和其中的一些builder有冲突,否则的话出现错误很难查找。而且工程的可控制性也不强。

    以上就是我对wpf&&wdf的一些看法,之所以有些写wdf有些写wdf有些写wdf&&wdf。是因为有时候他们都可以混合起来讲!以后哪我建议这两个产品最好和成一个,wpf就作为试用版算了,wdf就作为正式版,如果要得话就拿钱买,以免总是混淆。但是不知道IBM搞这个的人肯不肯呢!
-----------------
我把这两个从IBM正版盘里拷出来,准备学学,研究一下哪个好用.

你可能感兴趣的:(数据结构,编程,IBM,SOA,WPF)