さまざまな企業/部門向けに、いくつかの異なるイントラネットサイトがあります。多くのコンテンツはそれらの間で一意ですが、いくつかの共有コンポーネントがあります。
現在の展開設定(これは最悪です)では、Visual Studioの[Webサイトのコピー]ツールを使用して、プロジェクトディレクトリとサーバー上の展開場所の間でファイルをコピー/同期します。次に、サーバー上のIISで、共有アイテム(主に.aspxページ)を指す仮想ディレクトリを設定できます。これらのページは、サイトのルートで標準のマスターページを探すため、それぞれのブランドで個別のサイトで正常に機能します。
いくつかの例:
- / VacationCalendar
- / PhoneDir
- /コントロール(.ascxファイル)
本番環境では問題なく動作しますが、いくつかの理由で問題があります。
- Webサイトのコピーツールは最悪です。
- これらのコンポーネントは実際にはサイトに存在しないため、ローカルでデバッグすることはできません。
- このサイトはプリコンパイルされていないため、明らかにパフォーマンスの問題が発生します。
ですから、私はそのナンセンスをすべて捨てて、プリコンパイルされたサイトの使用に切り替えたいと思います。Webデプロイメントプロジェクトはすべてをサーバー上に配置します。これにより、共有コンポーネントをどうするかという問題が発生します。この種の環境では、仮想ディレクトリのトリックを回避できないと確信しています。率直に言って、私は本当にそうしたくありません。
.aspx/.ascxファイルのサブディレクトリと関連するimage/script / CSSリソースをクラスライブラリのように機能させるにはどうすればよいですか?VacationCalendarディレクトリにあるすべてのものを独自のプロジェクト/ソリューションに配置し、各イントラネットサイトにそれをインポートさせ、それらすべてのファイルを/VacationCalendarパスで使用できるようにするとします。大きな頭痛の種なしでそのようなことをする方法はありますか?
ソース管理でアクセスを制限する必要がある可能性が常にあるため、これらすべてのサイトを1つのソリューションにマージする必要はありません。