1

SaaSアプリケーションを構築していますが、所有している単一のコードベースを保持したいと思います。別々のサブドメインcust1.saascompany.com、cust2.saascompany.comなどに所属したいのですが、TenantIDを持っていないため、複数の理由から、顧客ごとに別々のデータベース(プライマリデータベース)を使用することをお勧めします。すでにそのようにコーディングされており、使用が保証されるまで変更しても意味がありません)。データベースには、ユーザーログインメンバーシップが含まれています。

接続文字列用に個別のweb.configsが必要になると思いますか?または、すべての接続文字列とアプリケーションレベルの変数/定数を格納する別のデータベースを作成する必要がありますか?最終的には、このプロビジョニングを自動化できるようにしたいと思います(ここでも、使用法が必要な場合)。

手順を使ってこれを設定する方法に関して、誰かが私に指摘できる記事や投稿はありますか?探しているものが見つかりませんでした。

4

1 に答える 1

2

技術的には、これは簡単です。私たちは何年もこれを行います。別の規則(およびURLの書き換え)を使用していますが、my.domain.com/cust1これmy.domain.com/cust2は何も変更しません。

だから、これはあなたがすることです。接続文字列プロバイダーの抽象仕様を作成します。

public interface ICustomerInformationProvider
{
    string GetConnectionString( string CustomerId );  
    ... // perhaps other information
}

次に、次のような実装を提供します。

public class WebConfigCustomerInformationProvider : ICustomerInformationProvider { ... }
public class DatabaseConfigCustomerInformationProvider : ICustomerInformationProvider { ... }
public class XmlConfigCustomerInformationProvider : ICustomerInformationProvider { ... }

そして、何らかの方法でインターフェースを実装にマップします(たとえば、選択したIoCコンテナーを使用します)。

これにより、デプロイメント中にプロバイダーを構成する機会が得られます。たとえば、1つのプロバイダーを開発者が使用して(接続文字列をファイルから読み取る)、別のプロバイダーを実稼働環境で使用できます(データベースから接続文字列を簡単に読み取ることができます)。プロビジョニング済み)。

他にご不明な点がございましたら、お気軽にお問い合わせください。

于 2012-05-25T16:51:17.847 に答える