如何在C#和Flex之间共享代码?

时间:2009-07-15 22:51:18

标签: c# flex flash client-server

我正在开发一个与ASP.Net / C#后端通信的Flex / Flash应用程序。有什么方法可以在两者之间共享代码吗?

服务器提供了一个相当有趣的域模型,客户端设计为maniuplate。理想情况下,我希望能够定义此域模型一次,并让双方使用它来保持一致性。我追求DRY带来的所有好处。

我是Flex的新手,但我想到的是一些可以编译为C#和ActionScript的中间语言。

更新

我目前有一个基本的REST风格的Web服务,它将对话的XML序列化版本发送到Flex。这工作正常,但我真正感兴趣的是能够共享与这些对象一起的简单业务逻辑。需要在服务器和客户端上处理某些业务规则,并且出于性能原因,我不希望不必回调服务器。

7 个答案:

答案 0 :(得分:4)

我也遇到了这个问题,所以我写了一个C#到ActionScript转换器。

http://cs2as.codeplex.com/

在C#中编写逻辑,并将此实用程序添加为构建后步骤。然后,您的业务逻辑将在两种环境中都可用。它对我很有用 - 我用它来分享超过30,000行代码。

答案 1 :(得分:1)

我会破解域模型规范并让它生成两种语言的模型。但这可能不是最有效的事情。

答案 2 :(得分:0)

查看http://www.fluorinefx.com/(这是开源闪存远程处理)。我已广泛使用它来调用ActionScript中用C#编写的Web服务,它运行良好。好的一点是,你的c#可以返回一个DataSet(或类似的东西),而Flourine框架会将它转换为ActionScript理解的对象。

答案 3 :(得分:0)

<强>更新

您可以通过使用列表来传递对象,但您真正传递的只是数据。

你无法将'方法'传递给客户。

  1. 他们不一定要尊重它。一旦他们掌握了数据,就无法控制他们是否尊重你传递的方法。
  2. 你不会相信他们随后发回给你的任何东西。
  3. 我认为问题在于设置。

    您可以使用ActionScript在客户端处理任何您想要的任何内容,如果您想在客户端执行此操作,则只需将要操作的业务逻辑放在ActionScript端。< / p>

    Olde回答

    我通过使用web service layer一起使用Flex和C#。

    您可能希望查看创建Web服务以与您的C#代码进行弹性对话。

答案 4 :(得分:0)

我不知道,C#本质上是一种强类型的编译语言,而ActionScript是一种松散类型的解释语言。我害怕粉笔和奶酪。

答案 5 :(得分:0)

如果将对象序列化为XML并将其发送给Flex,那会怎么样?至少可以让您共享数据

答案 6 :(得分:0)