Apache flex Flex和ADO.NET数据服务…有人做过吗?

Apache flex Flex和ADO.NET数据服务…有人做过吗?,apache-flex,ado.net,Apache Flex,Ado.net,是否有人使用ADO.NET数据服务作为Adobe Flex应用程序的数据源?如果是,有什么成功的故事或悲剧可以避免吗?如果您确实使用了它,您是如何处理安全性的?我使用WebORB for.NET来执行Flex远程处理,然后在服务器上使用DLINQ。将LINQ与WebORB结合使用的一个棘手问题是,WebORB使用反射自动检索您返回到Flex的对象的所有关系。这会导致严重的时间损失,因为LINQ使用延迟加载来加载关系。为了防止这种情况发生,我做了如下操作: 重写DataContext的构造函数并添

是否有人使用ADO.NET数据服务作为Adobe Flex应用程序的数据源?如果是,有什么成功的故事或悲剧可以避免吗?如果您确实使用了它,您是如何处理安全性的?

我使用WebORB for.NET来执行Flex远程处理,然后在服务器上使用DLINQ。将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;
this.DeferredLoadingEnabled=false;
DataLoadOptions dlo=新的DataLoadOptions();
dlo.LoadWith(q=>q.Payments);
dlo.LoadWith(q=>q.Customer);
this.LoadOptions=dlo;
这告诉DataContext禁用延迟加载关系,并特别指示它只加载您想要的关系,而不延迟加载。这样,WebORB不会通过反射导致任何延迟加载,并且将传输到Flex的关系数量保持在最小


希望这对你有所帮助。在使用Flex/WebORB和LINQ时,这无疑是一个小“陷阱”。

是的,我们广泛使用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;
    ...

公共函数加载():void
{
loadWSDL(“web方法的wsdl”);
myDataService.WebMethodName.send(参数);
}
公共函数functionFiredOnComplete():void
{           
//获取数据
var myData:Object=myDataService.WebMethodName.lastResult;
...

他询问ADO.NET数据服务而不是web服务

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

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

然后你必须知道如何发布数据,当你想用JSON创建一个新记录并指定一个Id,其中有一个指向另一个表的链接时,这需要花费大量的时间。这是因为你不能只更新整数,而必须创建一个链接字符串,这感觉不是很容易

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