2008-09-18 71 views
8

我觉得很容易在Flex上找到示例,教程和简单示例。
基于现实生活中的项目,很难找到提示和良好实践。
如何任何提示:Flex最佳实践?

  • 如何编写可维护的ActionScript代码
  • 如何保证关注的清晰分离。有没有人在真正的Flex项目上使用过MVC框架,例如cairngorm,puremvc或easymvc?
  • 如何使用blazeds/amfphp从服务器获取数据?
  • 如何减少最终用户的延迟?
  • ...

回答

5

我在工作使用Flex经常加班,我会很乐意帮助..但是你的问题值得为每一个文章:)我会尝试一些简短的回答。

可维护代码:我认为应用了其他OO语言的相同规则。我使用一些特定于Flex的规则:使用强类型变量,始终考虑调度事件,以便让UI组件相互交谈(稍后将进行一些初始工作,非常灵活并稍后解耦)。

框架:看着它,阅读文档..非常好,但我仍然觉得他们的复杂性并没有被他们提供的好处所平衡。无论如何,我想改变我的想法在这一点上..

谈话与服务器:现在我使用BlazeDS,它工作得很好..有很多关于这个问题的教程,如果你发现任何麻烦设置它我很乐意提供帮助。

延迟:你的意思是在客户端/服务器通信?如果是这样,你应该探索BlazeDS实现的各种类型的通道。只有双向http轮询,接近实时的http(comet)..如果你需要更多的话,LiveCycle Data Services ES, BlazeDS诞生了,除此之外,它还提供了另一种名为RTMP的协议,它不是HTTP隧道,所以防火墙和代理服务器可能存在问题,但它提供了更好的性能(有一个免费的闭源版LCDS)。我在Intranet环境中使用标准http通道,即使使用大型数据集也没有发现真正的性能问题。

嗯..相当多的东西,不能更具体的,现在每个这样的点,问你是否需要:)

+0

感谢您的回复 关于延迟:我有一个应用程序的主页需要来自许多服务的数据。我以前使用DWR(ajax框架)将多个服务调用分批到一个httprequest中。你知道如何用flex实现这个吗?具有命令模式的http通道? – 2008-09-19 12:30:47

+0

为什么要在单个HTTP请求中批处理命令?通常,您不会针对这些低级别的细节进行编码,您只需调用remoteobject方法(并使用XML配置来描述如何处理它们)。最简单的方法可以创建一个即时收集所有数据的特别服务。 – 2008-09-23 07:35:21

0

我发现MVC框架RIAWave link是绝对不可思议的。它超轻量且易于使用。我发现Cairngorm和PureMVC的学习曲线非常陡峭,他们对我来说都感觉有点笨重。 RIAWave保持不变,只是为您提供MVC基础知识。

AMFPHP在后端也非常好。AMFPHP还有一个apache模块,它将负责将发送和接收的数据全部用C语言进行序列化/反序列化,而C语言正在快速发展。

如果延迟是一个担心,您将需要确保您获得一个良好的虚拟主机,甚至部署到多个数据中心,以便您的用户永远不会离开服务器。听起来有点早,但担心这一点。