は、これは間違いなくInfrastructure
モジュールでなければなりません。 Markusの議論はまったく正しいです - あなたは、インターフェイスの共有セットごとに別々のアセンブリを作成すべきではありません。 Infrastructure
モジュールをたくさん持っている方が、各モジュールにいくつかのインターフェイスを備えた多くのモジュールがたくさんあります。あなたが見つけたのは、あなたの2つの "インターフェースのセット"がいくつかの共有インターフェースを使うべきだと想像してみてください!あなたは何をしますか?その "スーパー共有"インターフェース用のアセンブリを1つ追加しますか?または、これらのモジュールを1つに結合しますか?私は間違っていると思う。
だから間違いなくInfrastructure
モジュール!
PS。 .NET Frameworkは1000年代のライブラリがあることを、想像して - コレクションの1、数学関数などのためanotheroneを....
UPDATE:
が実は、私はほとんどのインターフェイスと非常に基本的なのDTOのためInfrastructure
モジュールを使用しています。すべて共有コード別のアセンブリ(YourApplication.UIControls
、YourApplication.DAL
など)に移動します。私はこのようにする理由は十分ではありませんが、これはプリズムの勧告を理解する私のやり方です。ただIMHO。
UPDATE 2:
あなたはあなたのサービスを共有したい場合は幅が広いので - 私はそれが絶対にローミングサービスは以下のような構造を持つようになりますと思う:
YourApplication.Infrastructure
- 「非常共有」のインターフェイス(のようなIPaymentService
)
YourApplication.Modules.PaymentModule
- あなたのPaymentService
YourApplication.WPF.Infrastucture
の "非常共有" の実装 - あなたのインフラストラクチャあなたのYourApplication.Modules.PaymentModule
YourApplication.WebSite.Modules.PaymentUI
のためのいくつかのWPF固有のUI - - YourApplication.Infrastructure
YourApplication.WPF.Modules.PaymentUI
に加えて、WPFアプリケーション(ウェブサイト
などなどのためのUI ..だから、あなたのモジュールはほとんど常にYourApplication.Infrastructure
とYourApplication.TYPEOFAPP.Infrastructure
への参照を持っているだろう、TYPEOFAPP
はWPFできる場合、ウェブサイト、WINSERVICEなど。それとも、YourApplication.Modules.PaymentUI.WPF
のようにそれに名前を付けることができます。..
ので、あなたの計画は何ですか?インターフェイスが「すべてのモジュール」で共有されていないたびに別々のアセンブリを作成しますか?私はインフラストラクチャに入れました。これは、すべてのモジュールで共有されているコードなので、 –
私は、共有されている各インターフェイスセット(たとえば、Ordersを扱うすべてのインターフェイス)ごとに別々のアセンブリを作成することを考えていました。しかし、あなたが言っていることは意味があります、私はインフラストラクチャプロジェクトがほとんどのモジュールが必要としないインターフェースでいっぱいになるだろうと心配しています。 – Lukazoid
@ chopikadzeの答えの後に、別のアプリケーションでいくつかのサービスを再利用したい場合、このソリューションがどのように機能するのだろうかと思います。別個のインタフェースアセンブリと実装モジュールのアプローチは、例えばサービスがウェブサイト上で使用されることを意味する。 – Lukazoid