1

単一のコード ベースを使用して複数のサイトを実行しようとしていますが、コード ベースは次のモジュール (つまり、クラス) で構成されています。

  • ユーザーモジュール
  • Q & A モジュール
  • よくある質問モジュール

そして各クラスはMVCパターンで動作します。つまり、それはで構成されています

  • エンティティ クラス
  • ヘルパー クラス (つまり、静的クラス)
  • ビュー (つまり、ページとコントロール)

2 つのサイトsite1.comsite2.comがあるとします。そして、私は次の機能を達成しようとしています

  • site1.com では、ユーザー、Q & A、および Faq モジュールを稼働させることができます
  • site2.com では、FAQ モジュールがオフになっている間、ユーザーと Q & A モジュールをライブにすることができますが、必要に応じてオンにすることができます。

そのモジュールに属するすべてのページとコントロールでチェックするフラグ ビットを導入する必要がありますか? さまざまな機能をオン/オフできる CMS に似ています。私はそれを回避しようとしています。例を提供するか、間違ったアプローチを取っている場合は指摘してください。

4

2 に答える 2

2

いくつかの例と広範な調査を検討した後、2 つのシナリオに依存するという結論に達しました。

シナリオ 1: 可能なモジュールが 10 個しかなく、それらが一度に書き込まれ、更新が必要な場合はアプリケーション全体の更新が必要な場合、モデルを介して伝播し、によって使用されるチェックを簡単に使用できます。ユーザー インターフェイスを調整するためのビュー (たとえば、Web アプリケーション メニューに適切なリンクを表示するかどうかなど)。

シナリオ 2: 代わりに、多くの開発者によって開発された多くのモジュールのケースがあり、そのようなモジュールのいずれかを更新するために Web アプリケーション全体の更新を要求することが受け入れられない場合は、プラグイン モデルを探します。FogBugzで使用されるもの。

選択する際は、重要度別に分類された次の要素を検討してください。

  • 保守性:モジュールを変更するために Web アプリケーションの共通コードを変更することは許容されますか?

  • 依存関係:一部のモジュールは他のモジュールに依存していますか?

  • パフォーマンス:正確なコンテキストがわからないため、各ソリューションの影響を予測することは困難です。重い、巧妙に設計されたキャッシングを使用する場合、おそらく何もないでしょう。

  • 全体的なアーキテクチャ:何かモノリシックを行う理由がある場合 (相互依存性のため)、最初のソリューションがより適切に思われます。これは、すべてのモジュールが他のモジュールから厳密に分離されている場合には当てはまりません。

于 2012-10-28T07:58:52.670 に答える
2

あなたはポータブルエリアを見たいと思うかもしれません。各モジュールが領域になるようにコード ベースを設計し、必要に応じてそれらをサイトに展開することができます。

于 2012-10-17T13:14:56.023 に答える