8

過去に、私のプロジェクトは管理が難しくなりました。特に、数年後にやり直したり、すべてをやり直すことなく 1 つの部分を大幅に更新したりするために再訪する必要がある場合はなおさらです。今回は、「プラグ可能な」アプリケーション設計を簡単に作成できるようにすることに重点を置いており、すべてに触れることなく、1 つの部分を再訪してやり直すことができます。

私はこの構造を考えています:

アプリケーションの構造

したがって、私が望んでいるのは、境界コンテキスト 2 に取り組み、境界コンテキスト 1 をそのままにして、今後数か月または数年の間に多くの新しい機能でそれを拡張できるようにすることです。また、UI、特に Bounded Context 2 に関する部分にも取り組みます。また、ユーザーが他のデバイスから Bounded Context 2 を操作できるようにしたいと考えています。

境界コンテキスト 2 の UI で使用されている Web テクノロジも更新されることが望ましいです。なぜなら、これが私たちの主な焦点領域であり、最も使用されているからです。ユーザーの管理やユーザーのログインなどの一般的な機能を提供する「ランディング」サイト。

現在、管理を容易にするために、これらすべてを Visual Studio の個別のソリューションに分離することを考えています。しかし、1 つのソリューションでそれぞれのフォルダーを作成し、そこにすべてを配置することができました。

私の質問は、これを行うための推奨される方法は何ですか?また、さまざまなソリューションに分ける前に何を考慮する必要がありますか?

これを管理するためのベストプラクティスはありますか? 何が機能し、何が機能しないかを経験した人はいますか?

ところで、これは境界付けられたコンテキストによって分割されているため、直接的な依存関係はありませんが、システムの部分間の通信が必要になります (つまり、コンテキスト 1 は、コンテキスト 2 で再び必要とされる従業員を登録するためのビジネス ロジックを管理および維持します)。

更新 もう少し情報が必要であることを認識しています。

これら 2 つよりも多くの境界付けられたコンテキストがあります。それらのどれも実際には部門のようなものではありません。つまり、従業員管理は、他の管理に関連する情報を整理/アーカイブし、重要なイベントに関するリマインダーを取得する必要があるときにマネージャーがいるコンテキストです。購買は、従業員が部門のために商品を購入し、棚卸を行うときのコンテキストです。これを使用する組織部門は 20 ~ 40 あります。「レポート」が別の境界付けられたコンテキストであるかどうかを検討しています(ただし、非常に興味深いロジックと動作はありません)。これらは、基本的な機能を提供する小規模なものから始まり、より多くの機能が追加され、人々が新しいニーズを「発見」するにつれて、時間とともに成長する傾向があります。それらは個別に更新されます。かなり基本的なニーズを解決し始めたとしても、そのうちのいくつかがやがてより大きなシステムに成長することを願っています.

4

3 に答える 3

1

ソリューションの観点は、私が推測する主要な問題ではありません。プロジェクトをフォルダー内に整理することを選択します。境界付けられたコンテキストごとに 1 つと、別の 1 つの Web UI (それについて考えれば、それ自体の境界付けられたコンテキストと考えることができます)。

すべての bc で共有されている共有カーネルがいくつかある場合があります。これは、別のフォルダーにも配置できます。

通常、各 bc は独立している必要があり (共有アセンブリを除く)、UI はインターフェイス (たとえば WCF コントラクト) を介して bc のみを認識している必要があります。

グローバル ソリューションには、すべてのフォルダーとその中のプロジェクト (MyApplicationName.sln) が含まれる場合がありますが、ソリューションの一部でのみ機能する専用ソリューションを考えることができます。たとえば、bc フォルダー、共有アセンブリ、および適合する場合は UI のみを含む MyApplication_BCName などです。あなたのニーズに対処するための巨大なソリューションは必要ありません。

小さく始めて、本当に必要になったらすぐに実行してください。相互参照には特に注意してください。vs での設定方法は実際には重要ではありません。アセンブリが疎結合の場合は、後でいつでも好きなように再配置できます。

私は一流のプログラマーではありません。たまたま、私が関わった最新のプロジェクトでは、このようなことがうまくいくように思えました。数か月 (数時間..?? ;) で完全に変更される可能性があります。

于 2012-11-23T18:29:25.770 に答える