私たちは、さまざまな顧客 (多くのさまざまなプロジェクトに含まれています) に販売したブログ システムを持っています。このシステムには、いくつかの aspx ページ、1 つまたは 2 つの ascx コントロール、1 つの css ファイル、1 つの javascript ファイル、およびいくつかの分離コード/vb.net ユーティリティ ファイルなど、さまざまなファイルが含まれています。一般に、このモジュールの 90% 以上は顧客間で同じですが、もちろんすべての顧客は、表面的な html/css の変更からサーバー/クライアント ロジックの微調整まで、何らかのカスタマイズを望んでいます。
現在、ブログ システムを新しいプロジェクトに展開するには、ファイルを (最後に作業したプロジェクトから) コピーし、必要に応じてファイルをカスタマイズするだけです。しかし、今では、ブログ システムの一意で互換性のないコピーが 10 個あります。各プロジェクトでブログ システムを機能させるだけでも、かなりの時間がかかります。また、新しいブログ システムから古いシステムやメンテナンスに改善を広めることは、本当に頭の痛い問題です。
理想的には、一般的なケース (90%) に対応するブログ システム ファイルの単一の「ゴールデン コピー」が必要です。そのゴールデン コピーを新しいプロジェクトに追加して、ブログ システムをほぼ瞬時に動作させることができますが、必要に応じてファイルを追加またはカスタマイズすることもできます。さらに良いことに、「ゴールデン コピー」に改良を加えると、これらの変更をすべてのサイトに簡単に展開でき、お客様のために行ったカスタマイズを尊重します.
新しい css ファイルを追加してベース クラスを変更し、ベース サーバー側のロジックをオーバーライドする新しい vb.net クラスを追加できることはわかっていますが、aspx、ascx、および js ファイルを処理する方法が本当にわかりません。 理想的には、ファイル ベースまたはソース セーフなソリューションを見つけることができます。たとえば、カスタマイズされた新しいファイルが存在する場合、ゴールデン ファイル内の対応するマークアップ/js/etc を自動的にオーバーライドします。 もちろん、私たちはすべてのソリューションに対してオープンです。これは非常に一般的なシナリオのように思われるため、誰かが「ベスト プラクティス」を開発してくれることを期待していました。私が説明していることは可能ですか?アドバイスや指示をいただければ幸いです。よろしくお願いします。
シェーン