2

これらのボードに質問を投げる最初のショットなので、助けが得られることを願っています。

クライアントで .NET プラクティスを開始するために取り組んでいます。現在、5 つの小規模な .NET アプリケーションが配置されており、そのうちのいくつかは本番環境に移行しています。ほとんどの場合、いくつかのデータ入力/ビジネス ロジック機能を備えた小さなレポートです。これらの各アプリケーションは現在、同一のマスター ページを使用しています。

つまり、各アプリケーションに同じマスター ページのコピーがあるということです。それらはすべて基本的な Web サイト -> WCF -> BL -> DB 階層型アプリケーションです。そのため、変更を加えたときに変更する必要がある同じマスター ページのコピーが 4 つあります。

クライアントは、これらすべてを 1 つのソリューションに統合することを望んでいません。彼らは、サイト間でアプリケーションを分離することを好みます。共通の要素を何度も更新するという煩わしさに対処し続けたくありません (これらのアプリケーション全体でさらに多くの更新が行われるでしょう)。

コードはすべてチーム ファウンデーション サーバーに保存されます。また、マスター ページを .dll にコンパイルして展開する必要もありません。

複数のアプリケーションでこれらの共通ファイル (master、.css など) の単一のコピーを維持する方法について、誰か提案してください。

前もって感謝します

4

6 に答える 6

2

Visual Studio でマスター ページを共有する を参照してください。

それでも問題が解決しない場合は、Visual Studio でBuild Eventsを使用してみてください。プロジェクトの 1 つを "メイン プロジェクト" として選択し、そのプロジェクトのマスター ページのみを編集します。プロジェクトをビルドすると、そのマスター ページ (変更されている場合) を設定した場所にコピーするコマンドが実行されます。

于 2009-01-23T21:47:28.963 に答える
0

編集: css の部分がありませんでした。明らかに、これらのファイルを提供することはできないため、これはマスター ページに対してのみ機能するはずです。

あなたのシナリオがわからないので、

DNS / 仮想ディレクトリをアプリケーションに対して制御できる場合は、次のような形式を使用できます。

c:\inetpub\wwwroot\Application1
c:\inetpub\wwwroot\Application2
c:\inetpub\wwwroot\Application3 c:\inetpub\wwwroot\Application4
c:\inetpub\wwwroot\Application5
c:\inetpub
にマスター ページを配置します。 \wwwroot\master.Master、
c:\inetpub\wwwroot\master.Master.cs、
c:\inetpub\wwwroot\master.Master.cs.designer

次に、/../master.Master からマスター ページの 1 つのコピーを参照できます。ルートを超えて到達できることを確認するために、プリコンパイル済みのマスター ページを使用して簡単に試してみました。試してみる必要があるかもしれません。

于 2009-01-23T22:29:23.450 に答える
0

クライアントは、これらすべてを 1 つのソリューションに統合することを望んでいません。彼らは、サイト間でアプリケーションを分離することを好みます。共通の要素を複数回更新するという煩わしさに対処し続けたくありません (これらのアプリケーション全体でさらに多くの更新が行われるでしょう)。

コードはすべてチーム ファウンデーション サーバーに保存されます。また、マスター ページを dll にコンパイルして展開する必要もありません。

そこにある唯一の2つの実際のオプションを削除しました。マスターページには何がありますか? HTML UI 要素を単一のテンプレートまたは一連のテンプレート HTML ファイルに抽出し、それらをマスター ページに動的にインポートすることは可能でしょうか? 次に、共通の HTML を任意の URL に再配置し、各アプリケーションのマスター ページに動的にプルさせることができます。

編集:私は嘘をつきました。Sharepoint のように VirtualPathProvider を使用してマスター ページをデータベースやその他のディレクトリに格納することもできますが、VirtualPathProvider は MediumTrust 環境では機能しないことに注意してください。

参照:
http://msdn.microsoft.com/en-us/library/system.web.hosting.virtualpathprovider.aspx

于 2009-01-23T21:46:59.103 に答える
0

結局、VPP ルートを使用しました。仮想パス プロバイダーを作成し、マスター ページを DLL に組み込みましたが、これは機能しています。マスターページがコードビハインドを介して遅延バインドされているコンテンツページは、スタンドアロングページである必要があると考えているため、検証/フォーマットのヒッシーフィットをスローするという点で、大きな問題があります。私の CNTRL + K、CNTRL + D は、現在マスター ページを共有しているすべてのページで壊れています。これは私とチームにとって非常にイライラさせられます

于 2010-02-17T21:30:39.180 に答える
0

Web サイトではなく Web アプリケーション (dll にコンパイル) を使用している場合は、次の操作を実行できます。

マスターページを保存するフォルダーを右クリックします

「既存のアイテムを追加...」を選択します

ファイル システムのマスター ページを参照し、.master ファイルと .master.cs ファイルの両方を選択します。

次に、[追加] ボタンをクリックする代わりに、[追加] の右側にある小さな下向き矢印をクリックします。[追加] と [リンクとして追加] のオプションを含む小さなメニューが表示されます。

[リンクとして追加] を選択すると、プロジェクト内のファイルが参照されますが、開発環境の元の場所に残されます。これにより、他のアプリケーションで最新の状態に保ちながら、いずれかのアプリケーションでファイルを編集できます。

明らかにコード ビハインドを編集する場合は、それらのサイトに変更を展開する前に、他のプロジェクトを再コンパイルする必要があります。

これは、Web サイト プロジェクトではファイル構造に依存してプロジェクトの内容を判断するため、利用できません。

于 2009-01-23T22:16:33.287 に答える
0

ソース管理を使用して、必要なすべての場所に共有ファイルへのリンクを作成します。したがって、ある場所で編集した場合は、最新のものを取得するだけで、リンクした他の場所に表示されます。

于 2009-02-27T08:37:36.243 に答える