我正在开发一个目前用户为零的项目,但我们希望扩展到可能数百个。目前我们在一个 MySQL 数据库上运行,AMFPHP 与 Flex 交互。我们使用 Flex 是因为它强大的图形功能(对这个项目很重要),而且最初的开发人员(不是我)已经知道 ActionScript。我们目前正在使用 AIR,但可能会在某个时候切换到基于 Web 的 Flash。
我的问题是:
- Flex 是这样一个项目的好工具吗?
- 我们可能遇到的 Flex 的主要限制是什么?
- 我们可能还想考虑哪些其他开发平台?
谢谢。- 戴夫
我正在开发一个目前用户为零的项目,但我们希望扩展到可能数百个。目前我们在一个 MySQL 数据库上运行,AMFPHP 与 Flex 交互。我们使用 Flex 是因为它强大的图形功能(对这个项目很重要),而且最初的开发人员(不是我)已经知道 ActionScript。我们目前正在使用 AIR,但可能会在某个时候切换到基于 Web 的 Flash。
我的问题是:
谢谢。- 戴夫
简短的回答,是的。已经有许多黄金时段的应用程序使用 Flex 作为其 UI 开发平台。如果你去 Adobe 网站,他们展示了很多。
就个人而言,我选择 Flex 有两个原因,首先是,尽管您可能可以在 HTML 中或使用适当的工具包完成 Flex 所做的大部分工作,但 Flex 旨在提供有吸引力和引人入胜的用户体验,并且可以使用所有 Flash。此外,开发环境和可用的小部件使编程变得简单而有趣。我不想引发关于 HTML 与 Flex 的宗教战争,所以我将把它留在那里 - 它适用于我、我的应用程序和客户。
其次,更重要的是,它更多地平衡了客户端的处理负载,这意味着我的服务器架构可以优化,仅用于提供内容和持久化数据。我的大部分业务逻辑已经迁移到客户端。在古典建筑领域工作多年后,我认为这是向前迈出的一大步,但我已经可以对她提出不同意见了。
我对 Flex 的警告来自于需要为您的客户端代码采用正确的架构。如果你弄错了,很容易用 Flex 创建一个巨大且性能不佳的应用程序。让一切事件驱动并且显然是异步的,你应该没问题('显然',因为 Flash 播放器是单线程的)。这是缺点 1,单线程 Flash 播放器有时会导致问题。
缺点 2 可能更严重,即企业环境中的桌面被锁定。很多时候,您的目标受众不会对他们的计算机拥有管理权限,并且会使用错误的 Flash 播放器或根本没有播放器。在公共部门组织和军队中尤其如此,所以如果你要去那里,我会仔细测试你的用户中是否存在 Flash。
除此之外,我衷心推荐 Flex。在您的简历中包含这也是一件很棒的事情!
高温高压
Flex 没有固有的可伸缩性问题,但是如果您有一个图形密集型应用程序,那么这些资源的正确服务可能是一个问题,但这与 Flex 几乎没有关系。
唯一值得注意且可能无法运行的平台是 iPhone(无闪存)和一些较旧的非闪存移动设备(尽管现在大多数都支持 Flash-lite)
至于替代方案,如果您重图形,并且不介意 iPhone,那么除了使用纯 HTML 技术之外,Flex 是不错的跨平台解决方案,即使不是最好的跨平台解决方案,这里的诀窍是 HTML 可以完成 Flex 可以做的 99%,但是如果你的 App 需要丢失的 1% 那么你就没有运气了,Flex 也会减少跨平台和大多数浏览器的兼容性问题。所以它可能会让你的工作更有效率。
Silverlight 2 是一个可供考虑的替代方案。WPF 如果您正在寻找具有离线支持的东西。
Flex + AIR 可能是和 Visual Basic 一样好的工具;它可能是拥有更灵活的编程语言和拥有免费开发工具的更好工具,但请记住这些限制......
我从使用它中看到的主要限制是文档。似乎没有足够的文档,没有足够好的文档,并且在社区中没有足够的高知名度工作。(这来自于 .NET 多年;我一直对 MSDN 很少提及方法但通常能够通过找到最有用的博客文章来处理它而一直感到不安。)
其他可能的开发平台将在很大程度上取决于项目的具体情况。基于 Web 的平台陷入与数据集的深度、有状态的交互(即使使用了不错的 AJAX 库),而维护任何胖客户端程序(例如,Flex + AIR)的客户端安装如果只是一些 CRUD 形式,则可能是矫枉过正.