3

わかりました、これが問題です。

私は、ASP.NET 4.0 と SQLServer 2005 の下で既存の (ASP クラシック アプリになったので、想像できます:P) Web アプリケーションを開発しています。コードと Visual Studio データベース プロジェクト

この Web アプリケーションには、いくつかの「ユニバース」があります (これが私たちの呼び方です)。すべてのユニバースには独自のデータベース (現在は同じサーバー上) がありますが、それらはすべて同じスキーマ (テーブル、sprocs など) と同じソース/サイト コードを共有しています。

ソースコードをデプロイしてから、各データベースでSQLスクリプトを手動で実行する必要があるため、手動でデプロイするのは本当に面倒です。手動で展開すると問題が発生する可能性があることはわかっているので、自動化する方法を探しています。

最近、スキーマを管理し、さまざまなターゲットで diff-schema スクリプトを生成する Visual Studio データベース プロジェクトを作成しました。

パーツの組み方がわからない

私はしたいと思います:

  1. ターゲットサーバーに「同期」デプロイする方法があります(ありがたいことに、サーバーへの完全なRDCアクセスがあるので、必要に応じてインストールできます)。「同期」デプロイとは、アプリケーション全体を完全にデプロイしたくないことを意味します。アプリケーションには多くのファイルがあり、新しいファイルまたは変更されたファイルをデプロイしたいだけだからです。
  2. すべてのデータベース ターゲットに対して diff-sql 更新スクリプトを生成し、それを 1 つのスクリプトに結合します。このために、どこかにデータベース名のリストが必要です。
  3. サイト ファイルをコピーし、生成された SQL スクリプトを簡単かつ自動化された方法で実行します。

MSBuild、M​​S WebDeploy、NAnt などについて読んだことがありますが、どこから始めればよいのかよくわからず、この手動デプロイを本当にやめたいと思っています。

私が列挙した方法よりも優れた簡単な方法がある場合は、喜んであなたのオプションを読んでください.

これはあまり具体的な質問ではないことはわかっていますが、それについて多くのことをグーグルで検索しましたが、その方法がわからないようです。自動化ツールを使用してデプロイしたことはありません。

どんな助けでも本当に感謝します、

皆さん、ありがとうございました、

よろしく

4

1 に答える 1

1

マルチテナンシーという用語を聞いたことがありますか?それがあなたの「多元宇宙」に適用されるかどうか、特にある宇宙が別の宇宙からアクセスされない場合は、それを調べる価値があるかもしれません...

見る:

http://en.wikipedia.org/wiki/Multitenancy

http://msdn.microsoft.com/en-us/library/aa479086.aspx

アップデート:

アプリケーションとデータベースが各クライアント(またはテナント)で同じである場合、SaaSアプリケーションと同じコード/データベースを提供するのに役立つ可能性のあるアプリケーションがあると思いますか?つまり、展開などを処理できる最上位の別のアプリケーション/構成レイヤーですか?

これらはPlatformasa Service(PaaS)アプリケーションと呼ばれていると思います。

参照: http: //en.wikipedia.org/wiki/Platform_as_a_service

クライアントのセキュリティ要件によっては、少しの作業(または多くの作業)でマルチテナンシーが可能になる場合があります。

オプション1:

アプリケーションの1つのインスタンスを使用できます。つまり、サイトを1回デプロイし、クライアントごとに異なるデータベースに接続します。各クライアントをURLで区別して、コンテンツ/データを分離し、それぞれに接続文字列を設定する必要があります(これにより、サイトの展開が1つの展開に削減されます)

オプション2:

アプリケーションの単一のインスタンスを作成することも、単一のデータベースを使用することもできます。各テーブルに「TenantID」を追加し、データのセキュリティ/分離を確実にするために、TenantIDを受け入れるようにすべてのコードを調整する必要があります。ここでも、URLに基​​づいてテナントを検出/区別して、すべてのデータベース呼び出しに使用されるセッションのTenantIDを設定する必要があります。(これにより、サイトとデータベースの展開がそれぞれ1つに減ります)

于 2010-04-27T21:38:00.150 に答える