私たちは職場でのプラクティスのいくつかを見直しています。現在検討しているのは、Flex ベースのクライアントと .NET Web サービスで通信を行うための最良の方法です。
私たちの典型的なアプローチは、最初に要件に基づいて対話をモデル化し、いくつかの XML メッセージをモックアップしてサニティ チェックし、それらを XSD に変換し、最後に XML との間でシリアル化するクラスを両端に構築することです。
これは、データベースにヒットするまで問題なく機能し、テーブルの結合などによって、クライアント側で単純化したすべての作業が台無しになり始めます。
LINQ to SQL やその他の OR マッパーを使用してこれを解決しようとしましたが、より深刻な問題を引き起こすことなく実際に問題を解決するものはありません。
RDBMS を単なるオブジェクト ストアとして扱わずに、膨大な量の変換コードを記述せずに複雑なデータ要件を処理するより良い方法はありますか?
私が探している魔法の弾丸は、結合テーブルとは何か、それを処理する方法を知っているものであり、Flex 用に「適切な」シリアル化された XML を生成し、強力な .NET タイピングを保持できるものだと思います。
各メソッドに必要な SQL を分析し、ストアド プロシージャを生成して使用できればボーナス ポイントです。しかし、それはおそらくあまりにも多くを求めています:)
「テーブルの結合」に注意してください。
これの定義は、2 つ以上の外部キーを独自の主キーとして持つテーブルがある場合です。
例えば:
Photos (PK PhotoID) <- PhotoTags (PK FK PhotoID, PK FK TagID) -> Tags (PK TagID)
Flex クライアントが Photo オブジェクトを取得すると、すべてのタグのリストも取得する場合があります。したがって、次のようになります。
<写真ID="3"> <タグ> <タグ名="公園" /> <タグ名="シドニー" /> </タグ> </写真>
代わりに、私が見た OR ツールは次のことを提供してくれます。
<写真ID="3"> <写真タグ> <写真タグ> <タグ名="公園" /> </フォトタグ> <写真タグ> <タグ名="シドニー" /> </フォトタグ> </写真タグ> </写真>