1

トランザクションが入力され、ワー​​クフローを通過する Web サイトがあります。階層化されたアプリケーションでは、標準の BLL (ビジネス ロジック レイヤー)、DTO (データ転送オブジェクト)、DAL (データ アクセス レイヤー) などに従います。一部のトランザクションは、異なるビジネス ロジックを持つ複数のアプリケーションにまたがるため、すべてを分離する必要があります。

バックエンド プロセッサもあります。ワークフローが完了すると、トランザクションが処理されます。さまざまなサードパーティのシステムで動作し、その一部は不安定であるか、それらへのインターフェースが不安定であり、トランザクションのステータスを報告します。各 Web サイトには、独自のバージョンのバックエンド プロセッサがあります。

さて、問題は、N 層を使用して、アプリケーションごとに新しい BLL を提案することです。上記のアプリケーションのレイアウトでは、バックエンド プロセッサと Web サイトは、連携して動作する 1 つのアプリケーション、または異なるビジネス ロジックを持つ 2 つのアプリケーションであると言えます。これを処理する理想的な方法は何ですか?1 つまたは 2 つのシステムのように動作しますか?

4

4 に答える 4

1

ここ数年、MVC を学んでいるうちに気づいたことの 1 つは、私がアプリケーション ロジックとドメイン ロジックと呼んでいるものの違いです。ビジネス ロジックという用語は、もう好きではありません。なぜなら、この用語をあまりにも大雑把に使用してきた、矛盾するすべての理論や実践からの荷物が多すぎるからです。

ドメイン ロジックは、「従来の」ビジネス ロジックであり、物事がどのように動作するか、必要なもの (検証) などです。アプリケーション ロジックは、ドメインの特定のプレゼンテーションに固有のものです。あなたの Web アプリは、こちらの Web ページに誘導されます (これは、WinForms アプリやバックグラウンド プロセッサの動作とは関係がないことに注意してください)。アプリケーション ロジックはアプリケーション内に存在する必要があります。ドメイン ロジックは、BLL 以下に存在し、共通の "ビジネス ロジック" を使用するさまざまなアプリケーションで再利用できる必要があります。

一般的な回答ですが、参考になれば幸いです。

于 2008-11-04T04:39:14.857 に答える
1

懸念事項をうまく分離すれば、単一のビジネス ロジック レイヤーを備えた同じアプリケーションと見なすことができると思います。同じコードを 2 回記述しても意味がありません。その秘訣は、Web サイトのユーザー インターフェイス部分と BLL ライブラリのビジネス ロジックとの間の懸念事項を強制的に分離することです。

パフォーマンスも問題になります。バッチ処理によって、Web サイトがリソースのために実行する必要があるタスクの実行がブロックされないようにする必要があります。これは、それらをより分離しておくための議論かもしれませんが、とにかくデータベース(または他のファイルベースのリソース)を共有している可能性が高いため、それは問題になる可能性があります.

インターフェイスにプログラムされた共通のビジネスロジックライブラリを保持し、他の懸念事項から完全に分離します.

于 2008-11-04T02:28:01.580 に答える
1

利害関係者の組織を反映するために、機能を分割することを検討してください。通常、2 つの別個の組織グループがある場合、機能が同様に分割されていると、開発と管理の要件の管理が容易になります。そしてその逆。

私たちのほとんどは、ハードウェアとソフトウェアの機能の外側の境界を探るアプリケーションの作成にそれほど多くの時間を費やしていません。

于 2008-11-04T02:30:46.753 に答える
0

これを行う「理想的な」方法は、当面のプロジェクトとシステムのさまざまな要件によって異なります。

私のデフォルトの設計は、それを 1 つのアプリとして機能させることです。しかし、より重いプロセスが実行されている場合は、要求されたジョブのパラメーターが保存され、別のプロセスによって処理されるバッチ処理を作成したいと考えています。

于 2008-11-04T02:22:52.650 に答える