FluorineFX是一个开源库,提供了一种在.NET framework下对Flex/Flash的远程过程调用,Flex数据服务和实时数据的使用技术。
能被.NET frameworks支持的FluorineFx有:
Microsoft .NET Framework 1.1 (1.1.4322)
Microsoft .NET Framework 2.0 (2.0.50727)
Microsoft .NET Framework 3.5 (3.5.21022.8)
Mono 1.2.4
.NET frameworks 支持向下兼容,所以新版本的框架将运行的二进制集会被定位到先前版本的框架。
特性
Flex, Flash Remoting (RPC)
Flex Messaging (partial)
Flex Data Services (partial)
Supports AMF0, AMF3 and RTMP protocols
Service Browser
Template based code generator (ASP.NET like syntax)
Easily integrate rich Internet applications with .NET backend
Easily integrate with Adobe Integrated Runtime (Adobe AIR™)
因为工作需要, 在flex/silverlight之间衡量了很久, 选择了flex. 虽然我一开始学的是asp.net/vb.net. 接下来的问题是flash和.net后台之间的数据传输问题. 我不喜欢webservice/httpservice的方式. 既然用flex,那肯定用amf/amf3. 好处不用多说. 那问题是选weborb 或者fluorinefx? Weborb是要收费的, 而且费用不便宜. 只得选fluorinefx. 主要工作目的是视屏幕聊天. 主要接触是rtmp协议.
fluorinefx是开源的, 这很好, 我们有机会了解数据传输/视屏传输等工作原理. 当然, 最好也看看amf, rtmp的技术文档. 要想对fluorinefx使用得心应手, 通过阅读fluorinefx源码来了解工作原理是必须的.
fluorinefx本身有两个adapter, applicationadapter and serviceadapter,供大家做项目开发的接口. applicationadapter 主要做流媒体,当然文字聊天支持也是最棒的. 比以serviceadapter基础做的聊天更方便管理和强大. 最主要是因为applicationadapter直接提供了iconnection和isharedobject这个参数. 使用fluorinefx最常遇到的问题是连不上. 原因很多, 最常见的原因是services-config.xml里对rtmp/anf协议配置错误. services-config.xml的端口一定要和flex里connection连接的url一直. 如果你中途更改了services-config.xml的端口, 最好把原flex的swf删除, 重新compile.另外是apps里的app.config里, application handler一定是要写全namespace.从文件名一直写到class名.
flex里的netconnection只能call applicationadapter 里的方法. 如果方法没有写在applicationadapter里, 那你最好使用remoteobject. 使用netconnection.call("method", new responder(Onresult, Onfault))时, 有群友问Onresult(event:后面的参数是什么类型. 如果.net方法有返回数值,那你就类型就是.net method里的return的类型. 如果没有返回, 那把new responder换成null.
从fluorinefx传数据集到flex里, 我个人觉得使用return returnValue.toList()最方便. 因为免去了aliasClass这个步骤.
|