从Flash / Flex移植到HTML

时间:2011-04-24 19:07:46

标签: jquery ajax flex

我有一个使用Adobe Flex SDK构建的非常复杂的社交网络系统。由于我们遇到了某些性能问题,我想将其转移到“轻量级”平台,后端是PHP,因此它只是UI。我的问题是。

  1. 如果我不想使用Silverlight,还有什么其他选择?
  2. 我被告知我可以使用我不熟悉的AJAX / jQuery - 是否有可用的GUI设计器?
  3. 我可以使用哪种GUI设计器来设计我的UI?

3 个答案:

答案 0 :(得分:1)

如果你真的考虑放弃Flash和Flex,我建议使用AJAX库。 AJAX将使您拥有一个交互式UI,就像Flash提供的一样,除了它是通过浏览器本身提供的,而不是浏览器Flash Player插件。

在我看来,

jQueryjQueryUIjQueryMobile是最强大,最容易学习的AJAX框架。他们都属于同一个家庭,因此使用它们确实没有多大区别。它还保留了您正在寻找的“轻量级”选项。 DreamWeaver CS5(或即将成为CS5.5)提供了很好的代码提示,可以帮助您快速开发jQuery应用程序和UI。

如果确实不想学习框架,我会尝试Sencha框架。我真的没有这方面的编程经验,但我知道他们提供visual designer program。这是一个伟大的专业人士,但在不利方面,它是一个商业框架/产品,并没有像jQuery那么轻量级。

希望有帮助,
spryno724

答案 1 :(得分:1)

免责声明:我是Web Atoms Framework的作者。

从Flex迁移是非常具有挑战性的,因为Flex中的绑定控件概念不再适用于基于纯jQuery的框架。您可以获得控件,但最终编写了大量脚本,并且基于MXML组件的开发不存在,因为在FLEX中扩展标记并创建自定义HTML元素并不容易。

从Flex迁移到HTML的挑战

我们遇到了类似的挑战,因此我们决定在完成各种现有框架之后编写自己的框架。我们遇到的问题是,我们不得不培训开发人员使用不同的UI逻辑编写相同的应用程序,这需要更大的学习曲线。

以下是JavaScript的问题

  1. 很容易写一次
  2. 但很难理解代码(即使是我自己的代码,代码图也变得太复杂了)
  3. 很难想象UI,因为开发人员倾向于在任何有空间的地方编写函数,所以除非你通过逻辑,否则你不会想象UI。
  4. 难以折射,使用IDE进行折射很容易,但那是代码级别的折射,大多数折射就好了,好吧我们不想要下拉,我们想要一个列表框,我们想要移动它,我们想要把它搬下来。
  5. 代码很少可重用,因为JavaScript和UI组件主要依赖于闭包和其他回调。
  6. 大多数错误仅在运行时检测到
  7. 最大的问题是“冲突ID”,并且没有组件分离。
  8. MXML和Silverlight中XML类标记的好处

    1. 易于可视化用户界面
    2. 易于崩溃并整理代码
    3. 易于重复使用标记
    4. 自定义MXML组件和Silverlight用户控件允许命名范围,其中不同组件中的子项不会相互干扰,尽管它们具有相同的名称。
    5. 易于折射
    6. 在设计时轻松检测错误,检测标记错误很容易,我们也可以自动执行该过程。
    7. 牢记一切,我们构建了自己的框架以模仿Flex on HTML,经过一年半的努力,我们能够构建框架,允许我们创建MXML类组件并构建UI并与简单的XML标记交互(通过带有自定义属性的HTML),因此开发人员可以轻松迁移。

      网络原子框架

      1. Web Atoms的语法与MXML Component
      2. 的语法非常相似
      3. 我们在Flex
      4. 中创建了许多有用的业务控件
      5. 虽然它无法自动传输代码,但是说你正在从Java迁移到C#,除了不同的名称之外,整体编程风格保持不变
      6. 我们已经引入了Scope的概念,它允许组件隔离,因此多个开发人员可以在不同组件的一个页面上工作而不会相互冲突,尽管使用相同的子元素名称。
      7. 我们已经创建了最简单的AJAX形式(AtomPromise),看起来就像编写同步代码一样,但是异步工作并使您免于编写复杂的回调。
      8. 我们引入了类似于MVVM和MVC概念的“Command Chaining”概念,但它更先进,更简单。我们将其称为模型视图命令中的MVC,您可以在此处查看其轮廓http://www.slideshare.net/ackava/model-view-command-pattern

答案 2 :(得分:-1)

我可以马上告诉你,不是平台。在使用非常大型数据集时(例如,数百万行),我注意到了一些性能问题,但我多年来一直在构建大型企业级应用程序。如果您不知道如何编写代码,任何平台都会遇到性能问题。

就个人而言,我会寻找一种重构而不是端口的方法。使用像Parsley,Robotlegs或Swiz这样的应用程序框架,学习如何从代码中获得更好的性能。