将基于Adobe Flex的UI迁移到较新的框架

时间:2019-03-20 09:00:29

标签: flex migration

随着adobe flex的使用寿终正寝,我想知道您遵循或可以考虑采用什么程序,或者要迁移到最新的UI(HTML5,AngularJS)?

所有链接都指出了这样做的利弊。但是,我在了解迁移UI技术时需要执行哪些步骤时遇到了麻烦。

6 个答案:

答案 0 :(得分:2)

另一个适合您的选择是Apache Royale。这是Flex Framework的发展,它允许将AS3代码转换为Javascript / HTML5。尽管不是完美的方法,但它是迁移旧项目以保持其正常运行的简便方法。

目前,尽管人们正在尝试使旧的Spark组件在新系统中进行仿真,但您只需要将UI从旧的Flex标记更改为新的。

所以基本上您是

如果您仍然喜欢使用新的js框架,我发现最容易适应的是VUE.js

答案 1 :(得分:1)

我们现在已经完成了其中一些迁移,简单的答案是“取决于情况”。您需要回答一些问题:

  • 最终用户在本地安装您的应用程序,而不是通过Web浏览器访问它是否可行? (表示您的Flex应用程序与其包含的HTML / JS页面之间的交互很少或没有交互。)。答案是肯定的,因为您可以使用AIR(另一个答案),也可以使用打包的解决方案按原样包含和部署您的应用程序,迁移变得更加简单(对您而言,下一步是无用的,但是这是一种商业解决方案,所以要花钱。)

  • 您是否愿意将源代码保留在MXML / AS3中,还是希望将所有这些都移至另一种语言(TypeScript或JavaScript)?如果您想将代码保留在MXML / AS3中并重用大部分代码,那么Apache Royale是不错的选择,因为它具有将MXML / AS3转换为JavaScript的编译器。如果您不想使用MXML / AS3,则需要选择一个新的TS / JS框架。

  • 您是否有很多对Flash API或Flex API的调用? Apache Royale确实支持许多功能,这些功能与Flash中的功能(事件,utils等)等效,但主要集中在Flex API上。甚至还努力尝试在Flex组件和新的Royale组件之间获得接近1:1的映射,以便减少移植工作。但是Flash API通常需要手动转换(例如,我们在Royale中为flash.media。*类创建了许多实现)。

我使用Royale的次数越多,我就越喜欢它。开始时会有一些学习曲线,但是当您意识到也可以从中访问任何JavaScript组件时,它就变得非常强大。最好为这些事情提供包装器(以与您为其获取TypeScript定义相同的方式),然后从工具链中获得类型检查等的好处。

答案 2 :(得分:0)

将Flex项目迁移到HTML / Javascript是一项艰巨的任务。首先,如果您的用户群适合桌面应用程序(而不是在浏览器中运行应用程序),则可以跳过迁移并使用Adobe AIR打包应用程序。

如果需要在浏览器中运行该应用程序,则需要将其转换为现代框架,例如Angular,React或Vue。我详细研究了这些框架,得出的结论是Angular / Typescript最接近Flex,并且是我的迁移项目的最佳选择,但是这种选择的一部分是个人喜好。我的经验是:

  1. ActionScipt代码(AS3)可以轻松转换为Typescript
  2. mxml代码翻译是困难的部分。 Flex中所有“开箱即用”的组件(从简单的UI元素到图表和数据网格)都必须替换为第三方库。需要更多调查/选择。
  3. Flex中的布局非常简单。在HTML中,使用CSS / flexbox会比较麻烦。这里没有简单的翻译

不幸的是,这是一个很大的学习曲线。第一步,在Angular或Vue中学习/编写一个小型项目。两者都具有本机TypeScript,并且它接近AS3。从那里,您将更好地了解如何制定迁移策略。

答案 3 :(得分:0)

我认为Flex几年前就去世了。我曾经是Flex开发人员。我必须说从Flex / Actionscript到React的过渡非常艰难。我确实发现标记语言(例如MXML或JSX(React))和编码语言(Actionscript或Javascript(React))之间的相似之处有所帮助。如果您对Java脚本有一个很好的了解,并且对基础知识没什么兴趣,那么对您有帮助。使用React或其他框架意味着还需要使用工具,捆绑程序(通常是webpack),并且还需要Babel的使用知识。我选择React是因为我有偏见并且非常受欢迎。让我知道您是否链接我认为有用的任何链接。 最后,我想说的是,只需避免使用Flex-> JS工具,将其吸住,微笑并学习吞噬网络的内容。...

答案 4 :(得分:0)

我正在将一个大型企业Web应用程序从Flash / Flex迁移到Apache-Royale。对于具有复杂业务逻辑的大型应用程序,Apache-Royale框架提供了巨大的帮助。尽管某些组件逻辑有所不同,但是它们足够相似,一旦您处于学习曲线的顶部,就可以轻松地进行交换。我能够保存大多数业务逻辑和应用程序结构这一事实使我的项目免于进行深度重写,而该重写将花费更长的时间。我要说的是,如果您的应用程序既庞大又复杂,那么Apache-Royale可能是经济端口的最佳解决方案。

答案 5 :(得分:0)

几年前,我们将两个Flex模块迁移到了AngularJS。这是我们遵循的过程:

  • 将业务逻辑代码从Flex前端移动到后端,以便可以从AngularJS前端重用(是的,我们拥有了代码之王!)
  • Flex正在使用BlazeDS框架与后端进行通信。它允许服务器将信息推送到客户端。如果是这种情况,则需要找到一种替代技术,例如Web套接字或服务器发送的事件。我们只是做了长时间的投票
  • 后端:几乎所有业务逻辑代码都包含在服务层中。我们在这一层之上编写了一个REST API,以向AngularJS公开API。 Flex使用的是通过BlazeDS公开的同一服务层
  • 前端:如果您的前端很复杂,则需要找到提供与Flex类似功能的JS框架。 Flex中有饼图/条形图;我们用D3.js绘制这些图表

我们必须进行迁移,因为市场营销决定我们必须在两种操作系统(Android和iOS)上的移动设备上运行前端应用程序。