こんにちは、私は階層型開発プロセスにかなり慣れていません。私は現在アプリを開発していますが、今日のテクノロジーのベスト プラクティスやアーキテクチャに関する質問について、いくつかの基本的な質問があります。サービス層として WCF を使用します。可能な限り物事を切り離そうとしていることに注意してください。LINQ TO SQL やエンティティ フレームワークが好きではない理由の 1 つである、上位層の何かが下位層の何かを知る必要はありません。
1) 層の間でデータを渡す最良の方法は何ですか? データセットまたはデータテーブルのいずれかが簡単であることはわかっていますが、この肥大化したデータ構造を階層間で渡すことが最善の解決策になるとは思いません。また、データテーブル/データセットが大きい場合、デバッグが難しくなります。おそらくPOCOオブジェクトの配列が最善の解決策になるでしょうか、それとももっと良い方法がありますか?
2) 次の質問は少しトリッキーです。多くのアプリケーションには、データのさまざまなビューがあります。複数のレポート、さまざまなデータグリッド、および 1 つまたは 2 つのグラフがある場合があります。このためにデータ層をどのように設計しますか? 各テーブルの「Get」タイプの関数を設計してから、それらをビジネスレイヤーのグリッドやレポートなどの便利なビューに結合しようとしていますか、それともビジネスレイヤーで必要な各ビューに特化した関数を持っていますか?
正直なところ、どちらのソリューションも好きではありません。ビューごとに特殊なロジックを決定する場合は、ビューごとに POCO オブジェクトを作成する必要があります (POCO オブジェクトの配列を返すと仮定します)。後でビューの 1 つにさらに列を追加する必要があると判断した場合は、既存のコードを壊すことになります (POCO のインターフェイスを変更するため)。各テーブルのビューを返し、それをビジネス レイヤーで結合しようとすると、非常に面倒になる可能性があります。TSQLには理由があります:)。また、設計によっては必要以上のデータを返す可能性があり、非効率的です。
他にもいくつか質問がありますが、それは後で取っておきます。この投稿が大きくなりたくない:)
ケージ