2017-03-19 15 views
2

ASP.NET MVCを使用してマルチテナントアプリケーションを開発しており、マルチテナントとSaaSに関する優れた調査を行った結果、データ層(データベース:スキーマによる分離、データベースによるまたは共有)を実装するために利用可能ですが、ビジネスとUIレイヤを実装するためには非常に限られたリソースしか利用できません。ASP.NET MVCでプラグインベースのアーキテクチャを使用したマルチテナントアプリケーションの開発

私は別のデータベースアプローチを採用しました。

本当にマルチテナントにするために、私はプラグインがテナントベースのモデル、ビュー、コントローラを備えたMVCアプリケーションであるプラグインベースのアーキテクチャ(umbracoやNopcommerceなど)を選択しました。ここで

は、私はそれを開発するつもりですかです:

  • コントローラの工場は、テナントに基づいて初期化されます(サブドメイン)

  • ビジネス層がテナントに基づいて(DIを使用して)に注入されます。

  • とUI(表示)は、プラグインに基づいて表示されます。

しかし、このようにすべてが冗長であり、共通の動作を共有できません。

誰でも共通の行動を共有できる方法を設計するのに役立つことができますか、それとももっと良いアプローチがありますか?

+1

UI /コントローラで共通の動作をするような問題を定義してください。テナントに搭載され、テナントがこのワークスペースをセットアップするためのデプロイメントの更新を待たなければならないため、テナントごとに個別のUI /コントローラを維持することは容易ではありません。これは、純粋なマルチテナントレベルではありません。明示的な問題を共有して解決策を提案することができます。 – Saravanan

+0

こんにちは@Seravanan、あなたのご意見ありがとうございます。あなたは、各テナントに対して、私は良いではないプラグインを追加する必要があることは間違いありません。しかし、私は登録ページ(ビュー)がすべての検証に共通し、フィールドのカップルは、テナントごとに異なる場合、どのように私は同じビューとコントローラを使用することができます検証ルールとフィールドが異なる場合(ただし、ランタイム)。 –

+0

ビューページID、テナントID、正規表現を格納するカスタムテーブルを持つことができます。特定のテナントによってデータが転記されたときに正規表現を実行します。 – Saravanan

答えて

1

DI/IoCを使用して同様のアーキテクチャを実装し、現在ログインしているユーザーのテナントに基づいて正しい構成を注入することに成功しました。オートファックは、箱からすぐにマルチテナントの機能を提供します。私はそれをチェックアウトすることをお勧めします。短い答えて申し訳ありません

http://docs.autofac.org/en/latest/advanced/multitenant.html

、モバイル上での書き込みは困難です。私は後で私のPCにアクセスしたときに答えを編集して広げようとします

+0

ありがとう、確かにそれのために行くだろう。 –

+0

ようこそ。これがあなたの質問に答えると思うなら、それを答えとしてマークしていただければ幸いです。 – Bishoy

+0

あなたの答えに投票したことありがとうが、それでも私が探していたものではないことを感じる。気にしないでください。 –

関連する問題