Adobe Flex アプリケーションのデータ ソースとして ADO.NET Data Services を使用した人はいますか? もしそうなら、避けるべきサクセスストーリーや悲劇はありますか? 使用したことがある場合、どのようにセキュリティを処理しましたか?
4 に答える
私は WebORB for .NET を使用して Flex Remoting を実行し、サーバーで DLINQ を使用しています。WebORB で LINQ を使用する際の注意点の 1 つは、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 が Reflection を介して遅延読み込みを発生させず、Flex に転送される関係の数が最小限に抑えられます。
これが何らかの形で役立つことを願っています。これは間違いなく、Flex/WebORB と LINQ を使用する際の小さな「落とし穴」の 1 つです。
はい、.Net Web サービスで Flex を広く使用しています。
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;
...
彼は Web サービスではなく ADO.NET Data Services について尋ねました
Flex は GET と POST しか実行できません Flex は HTTP 応答メッセージを理解できません
したがって、Flex が ADO.NET データ サービスと通信するには、次のいずれかを行う必要があります。
1. プロキシ サーバーを使用しますが、自分で見つけるか構築する必要があります
2. 着信要求を変更し、$method=MERGE などを使用します (プロキシと同じ)
3. 別の as3 httpService クライアントを使用します。いくつかのオープンソース イニシアチブがあります
次に、データを投稿する方法を見つける必要があり、JSON で新しいレコードを作成し、別のテーブルへのリンクを持つ Id を指定する場合、多くの時間がかかります。これは、整数を更新するだけではなく、リンク文字列を作成する必要があるため、簡単ではありません。
もちろん、それは可能ですが、箱から出して実際に自分で作成する必要があります。Flash Builder 4 には REST インポートが付属していることを知っています。これにより速度が向上する可能性がありますが、その経験はありません