1

ASP.NET MVC3 C# と MS SQL 2008 の使用

Software As Service サイトを開発しています。カーディーラー向けのカーインベントリーアプリです。サイトのアーキテクチャについていくつかのアイデアがありましたが、セカンド オピニオンが必要でした。

各ディーラーはレイアウトに制限されますが、ロゴをアップロードし、いくつかの色のテーマを選択できます.

最初は販売店ごとに別々のサイトを作ることも考えましたが、アップグレードは悪夢でした。

私の考えでは、ホスト名に基づいて動的に変化する 1 つのメイン サイトです。すなわち。したがって、miamicars.carinventory.com と入力すると、配色とロゴが表示されます。

ユーザーと会社の設定用にマスター データベースを 1 つ用意しますが、大量のデータ (車の在庫など) を含むサイトごとに個別のデータベースを用意します。このようにして、各サイトのデータを個別にバックアップおよび処理できますが、アプリケーションのメイン コードは 1 か所になります。

また、各企業には、個々のイメージを格納するためのディレクトリがあります。

どんなフィードバックでも歓迎します。

ありがとう

4

3 に答える 3

2

これらは複数の会社であることを考えると、マルチテナントの設計を検討することをお勧めします。見た目はもっと複雑ですが、成長するにつれてアプリケーションをきれいに成長させるのに役立ちます。これは、 ASP.NETMVCについて非常に興味深い別のブログエントリです。これがMSDNのもう1つの興味深いものです。

全体として、マルチテナンシーを考えている場合は、そこから始めて、それに基づいて成長させる方がよいでしょう。特にAzureを使用している場合は、Azureをスケーラブルにする唯一の方法である可能性があります。

HTH

于 2011-01-26T02:25:39.390 に答える
1

データベースの観点から見ると、これらのオプションがあります。繰り返しになりますが、マルチテナント アプリケーションを作成したことはなく、実装中にグレムリン サーフェスが表示されます。

1. すべてのテナントに対して単一のデータベース (クラスター) を用意します。

将来的にマスター/レプリカ クラスタリングを使用して、単一のデータベースをセットアップします。すべてのテナントがサイトを共有し、データの分離はデータ自体にあります。

  • アプリケーションの物理的な側面の管理を簡素化します。

  • コーディングを簡素化します。

  • スケーラビリティを妨げます。

  • パフォーマンスを (わずかに) 低下させます。

2. テナントごとにデータベースを用意します。

各テナントは、おそらく別のデータベース サーバー上にあるデータベースを取得します。

  • 新しいサイトを展開するのははるかに苦痛です。

  • データが自然に分割されるため、スケーリングが簡単になります。テナント A は通常、テナント B からのデータにアクセスする必要はありません。何らかの集計レポートを作成しようとしている場合を除きます。その場合、見苦しいシャーディング コードを作成することになります。

  • 優れたスケーラビリティ。テナントが十分なリソースを消費できる場合は、かなりハイエンドの専用ハードウェアを提供できます。

Webサーバーに関しては、memcachedなどでカスタムSessionProviderを使用し、サーバー自体を状態を保持しないプロセッサーとしてのみ使用することを検討します。

于 2011-01-26T03:48:37.763 に答える
1

データベースに関して、NoSql データベースの使用を考えたことはありますか?

私は現在、大量 (TB のデータ) を含む非常に大規模な Web アプリを作成しており、MongoDb を使用しています。

以下にいくつかのオプションを示します。

  • MongoDb - セットアップと使用が非常に簡単. スケーリングが非常に簡単で、非常に高度なクエリを実行できます。.Net を含む多数の言語用のドライバーがあります。
  • Cassandra - Facebook で使用されます。無限にスケーリングできます。Mongoほど豊富なクエリセットではなく、設定が難しいと聞いたことがありますが、経験はありません。
  • HBase - Hadoop の上に構築されています。Apache 経由のオープン ソースである Yahoo によって使用されます。もう少し複雑

その他に関しては、ASP.NET MVC を使用しています。展開が非常に簡単で、コードをすばやく記述できます。

于 2011-01-26T04:12:57.273 に答える