因为无论是FLEX,还是Silverlight、AJAX,他们都无法直接操作数据库(据最新消息,微软有了Microsoft .NET RIA Services,它可以直接操作数据库,我期待着她能在VS2010中出现),通常用WEBSERVICE等中间人的方式来进行SOAP协议的的文本传输,效率很低(大家试一下就会知道简直无法忍受),FLEX为了加快传输速度,于是制定了AMF。定义如下:

AMF是Action Message Format协议的简称,AMF协议是Adobe公司自己的协议,主要用于数据交互和远程过程调用,在功能上相当于WebService,但是AMF与 WebService中的XML不同的是AMF是二进制数据,而XML是文本数据,AMF的传输效率比XML高。AMF使用HTTP方式传输,目前主要是用于ActionScript中,即实现Flex和Server之间的通信。(引自:http://fykyx521.javaeye.com/blog/455837)

据说,AMF是WEBSERVICE速度的10倍。

跨域问题:

AMF在FLEX和.NET中间的解决方案是使用开源的FluorineFx,但其缺点是不能跨域,即,你生成的SWF文件必须和.NET程序放在一个服务器下。今天看到了用 crossdomain.xml 来实现跨域的方法(引自:http://www.mzwu.com/article.asp?id=975)。该XMl文件需放在.NET WEB程序的根目录下,XML内容形式如下:

<?xml version="1.0"?>
<cross-domain-policy>
  <allow-access-from domain="www.friendOfFoo.com" />
  <allow-access-from domain="*.foo.com" />
  <allow-access-from domain="105.216.0.40" />
</cross-domain-policy>

下面是二者在FLEX中的具体区别。

Fluorine:

FLEX调用Fluorine,是写:

<mx:RemoteObject id="sss" destination="fluorine" source="命名空间.类" >

<!-- 下面的name是在.NET中写的方法或函数名 -->

<mx:method name="getL" result="showN(event)" />

</mx:RemoteObject>

而调用WebService是写:

1、在 <mx:Application  xmlns:mx="http://adobe.com" creationComplete="WS.GetData.send();">

这其中的GetData就是默认的方法,调用参数在其下可以继续写。

2、下面写:

<mx:WebService id="WS" wsdl="http://localhost/ser/service.asmx?WSDL" >

<mx:operation name="GetData" resultFormat="Object" />

</mx:WebService>

但在通常的WebService,是这样用的:

为webservice.sln的解决方案中建立了一个名为math.asmx的webservice,在这个webservice中我们编写了一个方法:

[WebMethod]

public float add(float x,float y)

{

return x+y;

}

在地址栏中输入要调用webservice的位置,如

      http://localhost:8088/webservice/math.asmx

  此时,在myTest.sln下增加了一个"web引用"文件夹,在此文件夹下有一个"localhost1"项目,web引用文件夹下的localhost1(不固定),便是对另一个解决方案中的webservice引用。下面我们来看如何按这种引用方式在testForm.aspx表单中调用该webservice方法:

  首先,我们在testForm.aspx表单中增加一个新按钮,命名为abc。

  在abc按钮的abc_click()事件中编码如下:

private void abc_Click(object sender, System.EventArgs e)

{

float x,y;

localhost1.math math1=new localhost1.math();

/*在此定义了webservice对象math1*/

x=16.1f;

y=17.89f;

msg.InnerHtml=math1.add(x,y).ToString();

/*在此调用了math1对象的add()方法,并将结果显示在名为msg的<span>上*/

}

  当我们单击abc按钮时,这段代码同样完成了相应的方法调用。

然后,我们只需在"引用"上右击,选择"添加web引用……",

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fengyun14/archive/2009/03/13/3987085.aspx

FLEX中的Fluorine网关与WebService的区别相关推荐

  1. flash中制的SWC组件怎样导入到flex中使用

    flash中制的SWC组件怎样导入到flex中使用 2010-04-30 11:18 在使用FLASH导出SWC组件文件后,放入项目的LIB文件夹,然后要用实例化一个对象才能进行时操作使用, 但要记得 ...

  2. 谈谈微服务设计中的API网关模式

    来源:架构头条(ID: ArchFront) 原文:http://dwz.date/crrw 根据 Gartner 对微服务的定义:"微服务是范围狭窄.封装紧密.松散耦合.可独立部署且可独立 ...

  3. Flex中如何通过horizontalTickAligned和verticalTickAligned样式指定线图LineChart横竖方向轴心标记的例子...

    原文 http://blog.minidx.com/2008/12/03/1669.html 接下来的例子演示了Flex中如何通过horizontalTickAligned和verticalTickA ...

  4. (转)flex中使用swc实现更好的界面代码分离

    flex中使用swc实现更好的界面代码分离 转自:http://www.cnblogs.com/yjmyzz/archive/2010/07/26/1785265.html 前几天写过一篇" ...

  5. 在Flex中使用本地共享对象

    本地共享对象的概念想必都很清楚了,有些类似于浏览器的Cookie,在Flash中提供了下面的操作本地对象的方法: SharedObject.clear() 删除本地共享对象 SharedObject. ...

  6. FLEX中的MDI窗口包--flexmdi

    在FLEX中创建MDI窗口,强烈推荐这个包. 下载地址:http://code.google.com/p/flexmdi/ 示例:http://www.returnundefined.com/flex ...

  7. flex中自定义皮肤的按钮制作

    今天聊一下FLEX中自定义皮肤的按钮的制作.首先这是一个按钮皮肤文件: <?xml version="1.0" encoding="utf-8"?> ...

  8. 认识flex中的sprite

    在Flex的帮助文档里,有很多例子都是扩展Sprite类的.如果想把这些实例添加到你的mx:Application中,如:addChild(DisplayObject ),肯定会出错.错误的大致意思是 ...

  9. 【转载】 详细介绍Flex中操作XML

    一  在介绍Flex中操作XML之前,首先简单介绍下XML中的基本术语. 元素:XML中拥有开始标签和结束标签的这一块称为"元素"     节点:把XML元素与文本结合起来统称为节 ...

最新文章

  1. JS中的 generator
  2. mft按钮设计_奥林巴斯M4/3系统新品激情再燃 以轻量化设计铸就微单极致体验
  3. electron/nodejs实现调用golang函数
  4. 华为庞鑫:闪存3.0时代,四大变化激发全闪存数据中心潜能释放
  5. SQL2000和SQL2005和SQL2008同时安装问题
  6. 霍金撰文探讨如何建造时间机器
  7. FHJ学长的心愿 QDUOJ 数论
  8. python实现一个土豆聊天 potato chat 机器人
  9. 编译libfetion时,提示 从 int 到 QString 的转换有歧义
  10. spotfire中文使用教程含演示数据以及二次开发思路整理
  11. 信息流优化中,甲乙双方以及媒体的那点事
  12. Efficient Low-rank Multimodal Fusion with Modality-Specific Factors 论文
  13. photoshop动作怎么安装?PS怎么导入动作?ps动作安装方法详细教程
  14. 计算机组装电源的位置在哪,计算机组装之机箱和ATX电源
  15. MySQL报错: Incorrect string value: '\xE5\x85\xA8\xE7\x90\x83...' for column 'cname' at row 1
  16. 学Python中道崩殂的人,大抵逃不过这3个原因!其中有你吗?
  17. 威联通212-P 安装远程迅雷,docker安装远程迅雷
  18. 存储过程(数组参数、for循环、拼接的动态sql游标、merge into)
  19. C++ string常用截取字符串方法
  20. Hackthebox Three

热门文章

  1. 【网络安全】什么是漏洞扫描?有哪些功能?
  2. Spring AOP之pointcut语法
  3. 计算机画图师和制图员有什么区别,室内CAD施工图培训告诉你技术员与绘图师的差别在哪里...
  4. java里面slf什么意思_slf4j 是什么?
  5. 火山引擎ImageX图片服务纯代码使用方法额度领取
  6. 华为荣耀七刷机后显示无服务器,手机刷机成砖怎么办?华为荣耀7刷机四个须知...
  7. 软件机器人有哪些厂商?国内厂商实力如何?
  8. SOAP Web Services 简介
  9. 一个网站建设公司如何保障提供优质的服务
  10. 盛泰转债上市价格预测