私は以前にこの種のことをしたことがあります.3ページだけでまったく新しい「フォーク」はやり過ぎだと思います. 「ソース管理を使用しないでください」と言っているわけではありません。(なんらかのソース管理を使用する方がよいでしょう)しかし、3 ページの場合、簡単なリダイレクト ロジックが最も簡単な解決策だと思います。
これらの特定のユーザーがシステムにログインすると、問題の会社のメンバーであることを示す何らかの「グローバル変数」があると思います。置き換えようとしている 3 ページに、次のようなものを入れてif (companyName == "specialCompany") Server.Transfer("specialCompanyDirectory/anotherPage.aspx");
ください。健全性のために、置き換えた 3 つのページすべてを別のディレクトリに配置することをお勧めします。次に、「specialCompanyDirectory」の各ページの上部で、現在のユーザーが実際に「specialCompany」のメンバーであることを確認してください。
アプリケーションとページのロジックによっては、リダイレクト以外の処理が必要になる場合があります。別の Web ユーザー コントロールを使用するようなものです。
いずれにせよ、3 ページの変更用にまったく別のアプリケーションを作成することは、間違った方法のように思えます。大量のページを変更する場合は、TFS ブランチ、SVN フォーク、または別のソフトウェアを調べてください。
編集:
通常、ブランチは、最終的にマージするまで独立したままになるように設計されています。個々の枝が開発されている間、それらを永遠にバラバラにしておけば、それらは互いに何の関係もありません。そのため、「main」ブランチのこれら 3 つのページのいずれかに小さな変更を加えた場合は、「specialCompany」ブランチでも同じように変更を加える必要があります。
編集がほとんどないため、最初に上で説明した方法を使用することをお勧めします。これらの特別な変更を行っている場所を追跡できるように、特別な方法をいつ使用するかを決定するために、ある種のグローバルな方法を使用することをお勧めします。たとえば、次のようなメソッドを App_Code のどこかに追加します。
public String companySpecialMethod()
{
if (Request.ServerVariables["HTTP_HOST"].ToString().ToLower().Contains("somespecialdomain.com"))
{
return "somespecialdomain";
}
else if (Request.ServerVariables["HTTP_HOST"].ToString().ToLower().Contains("anotherspecialdomain.com"))
{
return "anotherspecialdomain";
}
else
return "";
}
次に、コードで次のようなことを行うことができます:
if (companySpecialMethod() == "")
{
//run a normal method
normalMethod();
}
else if (companySpecialMethod() == "somespecialdomain")
{
//run a special method, just for somespecialdomain
somespecialdomainMethod();
}
else if (companySpecialMethod() == "anotherspecialdomain")
{
//run a special method, just for anotherspecialdomain
anotherspecialdomainMethod();
}
でも
このソリューションにソース管理を本当に使用したい場合 (この種のことをたくさんやろうと考えている場合は、これが最良のアイデアかもしれません)、これを試すことができます:
![ここに画像の説明を入力](https://i.stack.imgur.com/CUprd.jpg)
リポジトリにすべてのコードが必要であると仮定すると、基本的に、すべてのプロジェクトでまったく同じコードのみを含む 1 つのリポジトリ (メイン リポジトリ) を作成します。このようにして、すべての基本コードが最新の状態に保たれます。通常のプロジェクトで行った変更はすべて、特別なプロジェクトにも反映されます。
(この次の部分を実行する必要はありませんが、すべてのコードを何らかのソース管理に入れることをお勧めします) 次に、「特別な」ディレクトリごとに新しいリポジトリを作成します。
この方法により、ソース管理にすべてのコードが含まれ、「ベース」コードへの変更を複製する必要がなくなります。
ソース管理ソフトウェアに関しては、私はSVNを好みますが、それは私だけです。:) TFS も優れた製品であり、SVN と同様に機能します。