WSSFを使用してWCF Webサービスを構築しています。その考え方は、メインデータベースをサービスを通じて公開し、サービスの上にさまざまなアプリケーションやWebサイトを構築できるようにすることです。現時点では、このサービスからいくつかのデータをダウンロードし、それを操作してレポートCSVファイルとしてユーザに提供する簡単なクライアントアプリケーションを構築しています。WCF /クライアントアプリ - ビジネスロジックはどこに行くべきですか?
ここで、ビジネスロジック(データを操作する)をどこに置くべきかという疑問がありますか?私はそれをサービスの中に入れると思った。私はすでにデータベース(顧客、注文など)とほぼ1対1で対応する単純なオブジェクトで、そこにビジネスレイヤーを持っています。私は、データを操作するためにいくつかの「より高いレベルの」オブジェクトを作成すると考えました。たとえば、顧客、注文などのオブジェクトを使用してレポートを作成するなどして、このサービスのビジネスレイヤに最適な場所があると考えました。そうすれば、必要に応じてさまざまなアプリケーションにこのロジックを再利用できます。
残念ながら私の上司は同意しません。彼は「懸念の分離」を望んでおり、このロジックの正しい場所は、サービスではなくクライアントアプリ内のビジネス層にあると言いました。私はこれが簡単かもしれないと思うが、私はこのコードを書くためにサービスビジネスレイヤーの中で私の強力なオブジェクトモデルを使いたいと思う。サービスによって公開されるオブジェクトは「実際の」オブジェクトではなく、サービスビジネスレイヤー内に存在する完全なオブジェクトモデルの能力を持たない軽量データ構造です。
あなたはどう思いますか?助けてくれてありがとう。
乾杯 マーク
私たちに別のクライアントが必要な場合は、すべてのビジネスロジックを複製するか、集中版を使用する必要がありますか? –
@Rubens Fariasのロジックを続けると、ビジネスロジックを修正してクライアントに置く必要がある場合は、*すべての*クライアントを更新する必要があります。サービス中の場合は、サービスのみを更新する必要があります。 –
回答ありがとうございます。はい、私はまた、再利用性がクールだと思います。主な欠点は、サービスを更新するとすべての既存のクライアントが壊れる可能性があるということです。 –