Flex与.NET互操作(十四):FluorineFx的AMF(Action Message Forma

2012-03-25
浏览
导读:AMF(Action Message Format)在开发Flash/Flex应用中使用频率是非常高的,相对普通的HTTP、WebService的SOAP等多种数据通信方式的效 率更高,有人曾经做过这方面

AMF(Action Message Format)在开发Flash/Flex应用中使用频率是非常高的,相对普通的HTTP、WebService的SOAP等多种数据通信方式的效 率更高,有人曾经做过这方面的测试,详细可以访问:http://xinsync.xju.edu.cn/index.php/archives/2162。本文将结合FluorineFx来提供 通信服务接口,在客户端通过Flex来访问,简单的介绍下关于使用FluorineFx的AMF(Action Message Format)协议通信的用法。

首先 建立一个FluorineFx服务库,并建立一个数据传输对象(DTO),为该对象添加[FluorineFx.TransferObject]表示该对象可以用作于 FluorineFx的数据传输对象,这个对象将会在本文后面用到,如下代码块:

namespace FxDotNet.Services.DTO
{
    [FluorineFx.TransferObject]
    public class Book
    {
        public int ID {  get; set; }
        public string Name { get; set; }
        public string Author {  get; set; }
        public double Price { get; set; }

        public Book()
         { }

        public Book(int id, string name, string author, double price)
         {
            this.ID = id;
            this.Name = name;
             this.Author = author;
            this.Price = price;
        }
    }
}

接下来就需要提供一个FluorineFx的远程服务(即标记有[RemotingService]的对象),通过该服务提供对外访问的方法 接口,如下代码块:

namespace FxDotNet.Services
{
    [RemotingService]
    public class  DataServices
    {
        public DataServices()
        {
        }

        /// <summary>
        /// 获取服务端的系统时间
        ///  </summary>
        /// <returns></returns>
        public string  GetServerTime()
        {
            return DateTime.Now.ToString();
        }

        public ArrayCollection GetBooks()
        {
             ArrayCollection array = new ArrayCollection();
            array.Add(new Book(1, "三国演义",  "罗贯中", 100.00));
            array.Add(new Book(2, "西游记", "吴承恩 ", 200.00));
            array.Add(new Book(3, "水浒传", "施耐庵",  300.00));
            array.Add(new Book(4, "红楼梦", "曹雪芹", 400.00));

            return array;
        }
    }
}

Flash基础教程 动画基础知识

flash as3.0 跨域的解决办法

网络相册开发(8)——Cairngorm架构浅析

Flex中PureMVC学习小结

Flex与.NET互操作(十六):FluorineFx + F