DTO/BO について私が疑問に思っていることの 1 つは、いつ DTO を渡す/返すか、いつ BO を渡す/返すかということです。
私の直感によると、常に NHibernate を BO ではなく DTO にマップし、常に DTO を渡したり返したりするように指示されています。その後、ビジネス ロジックを実行する必要があるときはいつでも、DTO を BO に変換していました。
これを行う方法は、BO に、DTO と BO の両方が唯一の引数として実装するインターフェイスの型 (必要なフィールド/プロパティを定義する) であるパラメーターを受け取るコンストラクターを持たせることです。
次に、コンストラクターで DTO を渡すことで BO を作成し (両方とも同じインターフェイスを実装しているため、両方とも同じプロパティを持っているため)、その BO でビジネス ロジックを実行できます。BO を DTO に変換する方法もあります。
しかし、人々が BO のみを操作し、バックグラウンドで DTO のみを操作しているように見える場所も見てきましたが、ユーザーには DTO がないように見えます。
常に BO を使用する場合と比較して、このアーキテクチャにはどのような利点/欠点がありますか?
私は常に DTO または BO のいずれかを渡したり返したりする必要がありますか、または組み合わせて一致させる必要がありますか (混合と一致は混乱を招く可能性があるようです)。