私のチームは、統合リポジトリの抽象化の背後にさまざまな異なるデータソースを隠すドメインモデルを設計中です。このアプローチの主な推進要因の1つは、これらのデータソースが近い将来大幅に変更される可能性が非常に高いことであり、これが発生したときにビジネスロジックを書き直したくありません。データソースの1つは、デフォルトのASP.Netメンバーシッププロバイダーを使用して最初に実装されたメンバーシップデータベースです。メンバーシッププロバイダーはSystem.Web.Security名前空間に関連付けられていますが、ドメインモデルレイヤーがさまざまな環境で使用されるため、System.Web(またはその他の実装/環境依存関係)に依存しないことを要求する設計ガイドラインがあります-また、Webサイトがデータベースと直接通信することも望んでいません。
MembershipProviderアプローチを抽象化されたn層アーキテクチャと調整するための優れたアプローチは何かを検討しています。私の最初の感覚は、ドメインモデルと相互作用する「DomainMembershipProvider」を作成し、リポジトリを処理して検証/ビジネスロジックを処理するオブジェクトをモデルに実装できるということです。次に、リポジトリは、(まだ決定されていない)ORM/データアクセスツールを使用してデータアクセスを実装します。
このアプローチに明白な穴はありますか?私はMembershipProviderクラスと緊密に連携していないため、何かが欠けている可能性があります。あるいは、上記の要件をより適切に満たすと思われるアプローチはありますか?
よろしくお願いします。
よろしく、ザック