実際には (機能的に) 2 つのポータルから構成されている大きな ASP.NET アプリケーション (レガシー) があります。そのため、それぞれの開発を容易にするために、2 つの個別のアプリケーションに分割する必要があります。
もちろん、両者には共通の機能があります。それらのいくつかは DAL と BL にありますが、それは問題ではありません。すべてのコードは、両方のアプリで参照されるアセンブリを構成する別々のプロジェクトで別々でした。
しかし問題は、2 つの「ポータル」(アプリケーション) 間で共有されるいくつかのページ、多数のユーザー コントロール、いくつかの css および javascript ファイルにあります。
それらの扱い方についてアドバイスをいただきたいです。私の主な関心事は重複を避けることなので、理想的には、それらは 1 つの場所にとどまり、両方のアプリで使用される必要があります。
最初に試したのは、あるプロジェクトから別のプロジェクトにファイルをリンクされたファイルとして追加することでした。これはコード ファイル (リンク先のプロジェクトに組み込まれます) では機能しますが、aspx / ascx または css / javascript / images では機能しません。最初に公開すると (コンテンツとしてマークされている場合、公開中にコピーされます)、開発中に常にこれを行うことはできません。また、アプリをデバッグしたり、ソース コードから実行したりするときに、そのようなファイルは見つかりません (sincve、リンクされたファイルを探しているときに、リンクされたファイルがアプリファイルツリーで実際に利用できないことは明らかです。
別の考えは、ビルド前のイベントを作成し、その中ですべての共有ファイルを共通の場所からコピーすることでした。たとえば、Common プロジェクトを作成し、そこにアプリケーション間で共有されるすべてのファイルを配置し、フォルダーに整理し、ビルド前にxcopy
.
もう 1 つの考えは、すべての共有ファイルをsvn:external
、両方のプロジェクトで参照する SVN リポジトリの一部にすることです。
しかし、すべてが私の少し面倒に見えます。誰かが同様の状況にありましたか?どのように対処しましたか?
私の提案について何かアドバイスはありますか?