マルチテナンシーを含む新製品を設計しています。ASP.NET と C# で記述され、Windows Azure またはその他のクラウド ホスティング ソリューションでホストされる場合があります。
私たちは MVC やその他のテクノロジを検討してきましたが、正直なところ、さまざまな頭字語 (MVC、EF、WCF など) に行き詰まりつつあります。
アプリケーションの特定の要件が頭痛の種です。ユーザーはデータベースにフィールドを追加したり、まったく新しいモジュールを作成したりできます。
その結果、各テナントは、システムを使用する他のすべてのテナントとは異なる構造のデータベースを持つことになります。データベースを共有するのではなく、すべてのテナントが独自のデータベースを持つことを想定しています。
(システムへのフィールドなどの追加は、Web インターフェイスを使用して実行されます)。
問題はありませんが、MVC のデータ モデルを作成するときに問題が発生します。このリンクによると、テーブルにフィールドを追加するためにプログラムでデータ モデルを変更することは不可能のようです。
これは私たちにとって大きな頭痛の種です。MVC を使用しない場合でも、データ モデルを作成する必要があると思います (おそらく LINQ to SQL で使用するため)。
多数のフィールドを含むテーブルを用意することを検討しています。ユーザーがフォームにフィールドを追加したい場合、データベースにフィールドを追加する代わりに、テーブルに既存のフィールドを割り当てます。でも、そのアイデアが好きかどうかはわかりません。
もちろん、MVC や Entity Framework を使用する必要はありませんが、Microsoft が今後の開発に向けて私たちを導くのは、これらの種類のテクノロジであるように私には思えます。
何かご意見は?ユーザーがカスタマイズ可能なアプリケーションというこのアイデアを検討したのは、私たちが世界で初めてではないと思います。