2

是否有人将 ADO.NET 数据服务用作 Adob​​e Flex 应用程序的数据源?如果是这样,有什么成功的故事或悲剧要避免吗?如果你确实使用了它,你是如何处理安全性的?

4

4 回答 4

3

我使用 WebORB for .NET 进行 Flex 远程处理,然后在服务器上使用 LINQ。将 LINQ 与 WebORB 一起使用的一个棘手问题是 WebORB 使用反射来自动检索您返回给 Flex 的对象的所有关系。这会导致严重的时间损失,因为 LINQ 使用延迟加载来加载关系。为了防止这种情况发生,我执行以下操作:

覆盖 DataContext 的构造函数并添加以下代码:

this.DeferredLoadingEnabled = false;
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Order>(q => q.Payments);
dlo.LoadWith<Order>(q => q.Customer);
this.LoadOptions = dlo;

这告诉 DataContext 禁用延迟加载关系,并特别指示它只加载您想要的关系,而不是延迟加载。这样一来,WebORB 就不会通过反射导致任何延迟加载,并且将转移到 Flex 的关系数量保持在最低限度。

希望这对您有所帮助。在使用 Flex/WebORB 和 LINQ 时,这绝对是那些小“陷阱”之一。

于 2008-09-05T14:06:47.973 回答
1

是的,我们广泛地将 Flex 与 .Net Web 服务一起使用。

Flex 无法处理 .Net 数据集,或者实际上无法处理复杂的 xml 类型。我们发现最好保持相对简单的 xml 输出。

但是,如果您这样做,它可以很好地处理 .Net Web 服务输出:

<mx:WebService id="myDataService" showBusyCursor="true">
    <mx:operation name="WebMethodName" 
                  resultFormat="object" 
                  result="functionFiredOnComplete();">
</mx:operation>
</mx:WebService>

public function load():void
{
    myDataService.loadWSDL( "web method's wsdl" );
    myDataService.WebMethodName.send( params );
}

public function functionFiredOnComplete():void
{           
    // get data
    var myData:Object = myDataService.WebMethodName.lastResult;
    ...
于 2008-09-08T11:54:46.687 回答
0

他询问有关 ADO.NET 数据服务而不是 Web 服务的问题

于 2009-04-18T10:26:16.377 回答
0

Flex 只能执行 GET 和 POST Flex 不理解 HTTP 响应消息

因此,为了让 Flex 与 ADO.NET 数据服务对话,您必须这样做;
1.使用代理服务器,但要自己找或搭建
2.修改传入的请求,使用$method=MERGE等(与代理相同)
3.使用另外一个as3 httpService客户端,有一些开源举措

然后你必须找出如何发布数据,当你想用 JSON 创建一条新记录并指定一个 Id 到另一个表的链接时,它会花费很多时间。这是因为您不能只更新整数,而是必须创建一个链接字符串,感觉并不容易。

所以当然可以,但是开箱即用,你真的必须自己做。我知道 Flash Builder 4 将附带 REST 导入,这可以加快速度,但没有这方面的经验

于 2009-07-23T17:41:15.987 回答