質問
そこで、私は非常にクールな (そして非常に大規模な) n 層アプリケーションを開発しています。
基本的に次のアセンブリがあります。
ドメイン
ドメイン.コントラクト
サービス
サービス.契約
プレゼンテーション.管理者
プレゼンテーション.ウェブ
Presentation.Core (管理者と Web 間で共有)
Presentation.Core.Contractsを実装するかもしれません
私が取り組んでいる主な問題は、異なるレイヤー間の名前の衝突です。 つまり。
Services.Contracts.AccountServicesRequest
Domain.Contracts.AccountServicesRequest
サービス名に関しても同じ問題がありました(この場合、WCFなどではなくクラスをサービスとして使用しているだけです)。つまり:
Services.Contracts.IAccountService
Domain.Contracts.IAccountService
ドメイン層のすべての「サービス ハンドラー」を IxxxServiceHandler にすることでこれを解決しました。これにより、次のようになります。
Services.Contracts.IAccountService
Domain.Contracts.IAccountServiceHandler
ただし、レイヤー間でやり取りされるオブジェクトに関するこの問題は解決できませんでした。これは私のソリューションを通じてさまざまな場所に散在しているようです。同じ問題を抱えている人がいるかどうかを知りたかっただけです。もしそうなら、どのように解決しましたか?
解決
はい、私はこの問題に遭遇してきたが、私はすぐに十分たびにそれを修正しています。
良いクラスの命名規則は助けることができます。複数のレイヤー間のクラスに同じ名前を使用しないでください。
また、あなたがそのよう名前空間のエイリアスは、を使用することができます例えば、使用されます。
services::IAccountService
domain::IAccountService
このヘルプをしていますか?