2

私たちは、さまざまな顧客 (多くのさまざまなプロジェクトに含まれています) に販売したブログ システムを持っています。このシステムには、いくつかの aspx ページ、1 つまたは 2 つの ascx コントロール、1 つの css ファイル、1 つの javascript ファイル、およびいくつかの分離コード/vb.net ユーティリティ ファイルなど、さまざまなファイルが含まれています。一般に、このモジュールの 90% 以上は顧客間で同じですが、もちろんすべての顧客は、表面的な html/css の変更からサーバー/クライアント ロジックの微調整まで、何らかのカスタマイズを望んでいます。

現在、ブログ システムを新しいプロジェクトに展開するには、ファイルを (最後に作業したプロジェクトから) コピーし、必要に応じてファイルをカスタマイズするだけです。しかし、今では、ブログ システムの一意で互換性のないコピーが 10 個あります。各プロジェクトでブログ システムを機能させるだけでも、かなりの時間がかかります。また、新しいブログ システムから古いシステムやメンテナンスに改善を広めることは、本当に頭の痛い問題です。

理想的には、一般的なケース (90%) に対応するブログ システム ファイルの単一の「ゴールデン コピー」が必要です。そのゴールデン コピーを新しいプロジェクトに追加して、ブログ システムをほぼ瞬時に動作させることができますが、必要に応じてファイルを追加またはカスタマイズすることもできます。さらに良いことに、「ゴールデン コピー」に改良を加えると、これらの変更をすべてのサイトに簡単に展開でき、お客様のために行ったカスタマイズを尊重します.

新しい css ファイルを追加してベース クラスを変更し、ベース サーバー側のロジックをオーバーライドする新しい vb.net クラスを追加できることはわかっていますが、aspx、ascx、および js ファイルを処理する方法が本当にわかりません。 理想的には、ファイル ベースまたはソース セーフなソリューションを見つけることができます。たとえば、カスタマイズされた新しいファイルが存在する場合、ゴールデン ファイル内の対応するマークアップ/js/etc を自動的にオーバーライドします。 もちろん、私たちはすべてのソリューションに対してオープンです。これは非常に一般的なシナリオのように思われるため、誰かが「ベスト プラクティス」を開発してくれることを期待していました。私が説明していることは可能ですか?アドバイスや指示をいただければ幸いです。よろしくお願いします。

シェーン

4

1 に答える 1

0

ソース管理システムと Visual Studio を使用してこれを行うこともできますが、成功した場合 (多くのクライアント) は面倒になる可能性があります。あなたがこのアプローチをとった場合、これが私がそれを行う方法です。

  1. コードを 2 つの構造または Visual Studio プロジェクトに分けます。共通コード (あなたが言及した 90%) とカスタマイズされたコード (残りの 10%)。

  2. ソース管理システムで初期構造またはベースラインを作成します。これは、2 つのコード セットの最も一般的なバージョンです。

  3. クライアントごとにコードのカスタマイズされた部分を分岐します。

  4. バグ修正やその他の更新がある場合は、共通コード部分を分岐します。Visual Studio 内では、1 つのプロジェクトを作成してディレクトリをマージするか、2 つの異なるプロジェクトを 1 つのソリューションで組み合わせて使用​​することができます。

それが役立つことを願っています。

于 2009-02-13T14:32:07.173 に答える