Flex和ADO.NET数据服务...有人做到了吗?
时间:2020-03-05 18:47:55 来源:igfitidea点击:
有没有人使用ADO.NET数据服务作为Adobe Flex应用程序的数据源?如果是这样,应该避免任何成功的故事或者悲剧吗?如果我们确实使用过它,我们将如何处理安全性?
解决方案
回答
我使用WebORB for .NET进行Flex远程处理,然后在服务器上使用DLINQ。关于将LINQ与WebORB一起使用的一件棘手的事情是,WebORB使用Reflection来自动检索我们返回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时,它绝对是其中的"小难题"之一。
回答
是的,我们广泛使用Flex与.Net Web服务。
Flex无法处理.Net DataSet,或者实际上无法处理复杂的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; ...
回答
他问有关ADO.NET数据服务而不是Web服务的问题
回答
Flex只能执行GET和POST
Flex无法理解HTTP响应消息