C# WPF和Flex之间的区别

C# WPF和Flex之间的区别,c#,wpf,apache-flex,directx,direct3d,C#,Wpf,Apache Flex,Directx,Direct3d,我是一名WPF开发人员,几天前我开始了解Flex。现在,我得到了以下问题列表 它们都将用于创建富GUI应用程序。那么,您是 他们互相竞争。** 如果两者用于相同的目的,则应首选哪一种** 此外,我还想知道WPF是基于DirectX进行渲染的 它是基于矢量的渲染,但同时我也很想知道 Flex是如何呈现的,Flex基于什么** Flex是否也可以使用基于GPU的渲染。。。在Flex中是否仍然可以使用着色器** 我对Flex非常困惑,因为我对Flex非常陌生……。因此,请澄清我的疑问,因为我可能对Fl

我是一名WPF开发人员,几天前我开始了解Flex。现在,我得到了以下问题列表

  • 它们都将用于创建富GUI应用程序。那么,您是
    他们互相竞争。**

  • 如果两者用于相同的目的,则应首选哪一种**

  • 此外,我还想知道WPF是基于DirectX进行渲染的 它是基于矢量的渲染,但同时我也很想知道 Flex是如何呈现的,Flex基于什么**

  • Flex是否也可以使用基于GPU的渲染。。。在Flex中是否仍然可以使用着色器**


  • 我对Flex非常困惑,因为我对Flex非常陌生……。因此,请澄清我的疑问,因为我可能对Flex有完全错误的认识Flex是一款基于Adobe的前端产品。这在内部使用Flash在浏览器上呈现其内容,或在AdobeAIR上呈现独立应用程序。这可以使用硬件渲染。您可以将其视为Adobe for WPF的替代方案

    1它们都将用于创建富GUI应用程序。那么,你呢 他们互相竞争

    只是在一定程度上。据我所知,WPF只能用于创建基于windows的应用程序。Flex最初的主要目标是web,大多数Flex应用程序都是所谓的“富互联网应用程序”

    后来Adobe创建了AIR,这是一个虚拟机,可以让您在操作系统上运行相同的应用程序,通常是通过重用为web应用程序编写的99%的代码。添加了一些API以访问操作系统的本机功能(客户端数据库、文件I/O、运行/访问本机进程等)。AIR应用程序可以部署在Windows、Mac和Linux上,但针对Linux的AIR虚拟机的开发已经停止

    这个故事的最后一步是,AIR应用程序现在也可以打包为可以部署在移动操作系统上的应用程序。又是因为它没有 在VM中运行,这提供了一个“一次写入,到处部署”的解决方案。Android和iOS都受支持(黑莓不确定,但谁在乎)。在Flex方面,框架中添加了一些特定于移动设备的UI组件

    2如果两者用于相同目的,则应首选哪一种

    选择完全取决于您,取决于您对框架的了解、您可能拥有的特定需求等因素

    3此外,我还想知道WPF是基于DirectX进行渲染的,因为它是基于矢量的渲染,但同时我也想知道Flex是如何渲染的,Flex是基于什么

    Flex是一个编译成ActionScript的框架,ActionScript又编译成abc字节码。该字节码将由Flash VM解释和运行。
    Flash的根源在于基于矢量的渲染(在过去的二十年中,它是在web上渲染矢量图形的解决方案)。因此,FlexUI组件的所有库存图形都是基于矢量的

    Flex也可以使用基于GPU的渲染。。。在Flex中是否仍然可以使用着色器

    GPU加速在过去5年中的某个时候被添加到Flash/ActionScript API中,但由于Flex框架早在那之前就创建好了,并且将其移植到新的GPU加速系统将过于复杂,Flex无法从这一演变中获益。
    但您可以将FlexUI与GPU加速组件并排使用。例如,您可以创建一个普通的Flex应用程序,其中只包含一个组件,该组件可以渲染一个生活在Flex显示列表之外的3D模型

    通常只有为FlashVM编写的游戏才能利用GPU加速。他们中的大多数人都使用这个框架。对于移动用户界面,您还可以选择框架,该框架在Starling之上提供了一个GPU加速的移动组件



    请注意@Vinodharajan的答案并不完全正确,因为Flex框架不再是Adobe的财产。Adobe大约两年前把它捐赠给阿帕奇基金会,自那以后它就一直在发展。