次のテクノロジーを使用してマルチテナンシーアプリケーション構造を実装するにはどうすればよいでしょうか。
それはすべて測定になります:
これらの8つのサイトのコード間のギャップはどのくらいですか?
このギャップは時間の経過とともにどのように進化しますか。
Webサイトがほぼ独立して進化すると予想される場合、8つのプロジェクトを持つことは理にかなっています。ただし、変更の多くが8つのWebサイトすべてに適用される場合、変更を8回行うのは残念です。
データベーススキーマを変更できないという制約があるため、とにかく1つのデータベースを持つことはできません(これが最初の選択であり、スキーマの違いがあまりにも露骨でリードできない場合にのみデータベースを分割する必要がある場合) switch
ステートメントを極端に使用して、共通スキーマを8つのケースすべてに適合させます。
これは、Entity Frameworkの使用と相まって、データアクセスレベルで8つのプロジェクトがあることを意味します。ここで、違いがほとんどない場合は、8つのデータプロバイダーのいずれかを使用して共通のWebサイトを作成することが理にかなっている場合があります。違いが多すぎると、最終的に8つのWebサイトプロジェクトにつながります。この場合でも、共通のライブラリにできるだけ多くのビジネスコードをエクスポートするようにしてください。
組織ごとに1つずつ、8つのWeb MVCWebサイト。ここに特定のビジネスロジック。
あなたの質問によると、ウェブサイトは90-95%似ているので、これはそれらのビジネスルールの90-95%が何度も何度も複製されることを意味します。他の複製と同様に、これは、誰かが1つのサイトのルールを変更するたびに、他の7つのサイトに同じ変更を加えるのを忘れるか、または1つのサイトの特異性を忘れたために、すべきでない場所にルールを作成するか、リグレッションを作成することを意味します。サイトの。