アプリケーションの構造化に関する私の見解は、アプリケーションを AppX.Web (UI ロジック) と AppX.Business (ビジネス ロジック) の 2 つのプロジェクトに分割することから始めますが、それらは同じ VS ソリューション内に保持します。ビジネス ロジックと UI ロジックの間の構造が明確になると、複数の Web ページ間で共有されるサービスと、単一の Web ページに対してローカルなサービスを理解するのに役立ちます。Web ページ間でコードを直接再利用することは避けてください。再利用が必要であることがわかった場合は、共有コードの一部をビジネス ロジック レイヤーに移動する必要があります。
ビジネス ロジック プロジェクトを実装するときは、さまざまな種類のビジネス ロジックに対して個別のクラスを作成するようにしてください。もちろん、これらのクラスは互いに通信できますが、Web ページ同士が通信することは避けてください。
UI ロジックをビジネス ロジックから分離したら、必要に応じて AppX.Business コードをさらに細かく分割できます。一般的な例は次のとおりです。
- AppX.Data: すべてのデータ操作を実際のビジネス ロジックから分離するデータ アクセス レイヤー (DAL)
- AppX.Dto: データ転送オブジェクト (DTO) は、jQuery による処理のためにクライアント ブラウザーにデータを送信する場合など、多くのシナリオで役立ちます。
- AppX.Common: 他の多くのアプリケーションに共通の共有ロジックです。これは、以前に作成したヘルパー クラス、または会社全体のサポート クラスに含めるためにプロジェクト後にレビューする必要があるものです。
最後に、すべてを取り入れてビジネス ロジックを WCF サービスとして公開する方法について説明します。その場合、実際には既存の構造を変更する必要はありません。WCF サービスを既存の AppX.Web プロジェクトに追加するか、AppX.Service で個別に公開することができます。ビジネス ロジックを UI ロジックから適切に分離した場合、WCF レイヤーはビジネス ロジックの薄いラッパーにすぎません。
WCF サービスを実装すると、そのすべてを 1 つのクラスで行うことができます。ビジネス ロジックを直接呼び出すだけなので、WCF サービスでは実際のビジネス ロジックは使用できません。
新しいアプリケーションを構築する場合は、全体的な設計を前もって検討する必要がありますが、今は再設計しているため、段階的に作業する必要があると思います。
- まず、AppX.Web および AppX.Business プロジェクトを作成します。
- サービスを識別し、それらのサービスの AppX.Business でクラスを作成します
- コードを AppX.Web プロジェクトから AppX.Business の新しいクラスに移動し、それらを Web プロジェクトから呼び出すようにしてください。
- 必要に応じて、追加の内訳を続けてください。