私は、さまざまな機能を提供する複数のインストール可能なモジュールを持つ Web アプリケーションを設計中です。ここでは多くの一般的なことが行われており、さまざまなプロジェクトで簡単に使用できることがわかっている 3 つの C# クラス ライブラリがあります。
私が立ち往生しているビットは、実際の Web サイト自体です。理想的には、複数のプロジェクトで再利用できるASP.NETページ ライブラリを作成したいと考えていますが、これは不可能であることを理解しています。
複数のプロジェクトでページを再利用できるように、ウェブサイト プロジェクトをどのように構成していますか? これまでのところ、私が思いついた唯一の解決策は、SVN でリポジトリを作成し、それをsvn:externals
メイン プロジェクトのプロパティで参照することです。これにより、すべての Web サイトに共通のページをそのディレクトリに追加することができ、これを使用してそれらを他のプロジェクトにチェックアウトできることがわかっています。ただし、これは少しぎこちなく、新しいプロジェクトを作成するときに問題が発生する可能性があると思います (新しいソリューションを作成するには、適切な外部が配置されていることを確認するためのいくつかの手順があります)。
より良い解決策はありますか?複数のクライアント プロジェクトで共通の ASPX ファイルを共有する場合、どの方法が最適ですか? それらに対する変更をどのように管理しますか?
前もって感謝します!
編集:
David の回答に感謝します。私はこれについてもっと考えたので、より具体的なアイデア/懸念事項のいくつかをリストしたいと思いました. まず、プロジェクトについてもう少し説明します。主に、それはCMSです。ただし、CRM を必要とするクライアントもいますし、どちらも必要とせず、ゼロから完全にオーダーメイドのシステムを必要とするクライアントもいます。
上記の最初の投稿では、複数のプロジェクト間で Web ページを簡単に再共有できるようにするために、メイン ルート (例: cms
)のサブディレクトリを持つことについて話しました。svn:externals
これがこれを行う唯一の方法だと思い始めています。私を悩ませたのは、クライアントの URL が次の場合でした。
http://www.shotgunanddribble.com/cms/content.aspx
Application_BeginRequest
ただし、クライアントのサイトの構成に応じて書き換えることで、ひどい URL を軽減するために を使用できると思います。たとえば、顧客が単なる CMS の場合、トップレベル ドメインを に書き換えることができます/cms/
。CRMの場合も同様です。両方の場合:
http://www.shotgunanddribble.com/
->/cms/
http://crm.shotgunanddribble.com/
->/crm/
この種の書き換えを使用することの欠点はありますか? 他の誰かが魔法のようなアイデアを持っていない限り、それsvn:externals
が私の唯一の希望だと思います.