0

別の同様のトピック (stackoverflow-serverfault-superuser など) に拡張したい Web サイト (ASP.NET MVC) があります。

データベース レイヤーとコントローラー レイヤーは、両方の Web サイトで同じです。異なるのはビュー レイヤーだけで、ロゴ、マスターページ、一部のリソース ファイル (一部)、および CSS などの詳細のみが異なります。

この状況を管理する最善の方法は何ですか? ジェフと彼のチームはどのようにこれを達成しましたか?

私の理想的な目標は、単一のソリューション (Visual Studio ソリューション)、コントローラーとモデルを含むプロジェクト、および n 個の異なるプロジェクト (各ビューごと) を持つことです。(明確にするためにこの行を追加しました

これは、2 つのソリューションを (SVN または Mercurial を使用して) 分岐し、公開中にマージするだけで完了しますか?

みんなありがとう!

4

3 に答える 3

2

私はこれを行う2つの方法で考えることができます

  1. ドメインが異なり、サーバーに保存できるcss、ロゴ、およびその他のUIのものを保存する場合は、WebサーバーまたはIISにapacheを実行する必要があります。

  2. .net を使用している場合は、マスター ページについて話していると思われますが、ドメインに違いはありません。Web アプリにロジックを追加して、ユーザー名やプロファイルなどのいくつかのルールに従って、あるテンプレートから別のテンプレートに切り替えることができます。.net を使用している場合は、さまざまなスキンを生成し、実装する必要がある特定のロジックに従ってそれらを割り当てることができると思います。別の言語を使用している場合は、テンプレートを生成して、ルールに従って切り替えることもできます。

お役に立てれば。

于 2009-07-09T06:35:30.263 に答える
1

App_GlobalResourcesこれを行うためにフォルダを使用します

  • App_GlobalResources \ ServerFault.resx
  • App_GlobalResources \ StackOverflow.resx
  • App_GlobalResources \ MetaStackOverflow.resx

ヘルパークラス付き:

public static class Resources
{
public static string TeamEmail { get { return GetString("TeamEmail"); } }    
public static string GetString(string key)
{
    return HttpContext.GetGlobalResourceObject(
         GlobalApplication.CurrentSite.ToString(), key).ToString();
}
}

そしてそれは次のようにビューに表示されます:

<a href="mailto:<%= Resources.TeamEmail %>">contact us</a>

より多くの完全な置換(たとえば、/ faq)については、次のようにFAQの複数のコピーがあります。

  • Faq-ServerFault.aspx
  • Faq-StackOverflow.aspx
  • Faq-StackOverflowMeta.aspx

ビルドは、サーバーごとにファイルの名前を適切に変更します。

(これらはコンテンツビューであるため、文字通りFAQ CONTENT自体であり、マスターページが残りのレイアウトを決定することに注意してください)

于 2009-07-10T05:44:43.990 に答える
0

あなたはウェブサイトを持っていて、別のトピックのためにそれを拡張したいと言っています。このファッションだと思うべきだと思います:

  • あなたはあなたの仕事をするウェブアプリを持っています。
  • その Web アプリをデプロイした Webサイトがある
  • ここで、同じ機能 (SO-SF と同様) を備えた別の Web アプリケーションが必要ですが、ルック アンド フィールは異なります。
  • あなたのタスクは、Web アプリを別の外観に構成し、別のサーバーにデプロイするだけだと思います

注: * これら 2 つの Web サイトは互いに独立しています。彼らは共通のデータを持っていません!* Web サイトを対話させたい場合は、Web アプリがそれ自体の他のインスタンスと対話できるようにしてから、再展開できるようにすることをお勧めします。

あなたの質問が正しく理解できたこと、そして私が書いた内容がお役に立てば幸いです。

乾杯、ジュニア

于 2009-07-09T06:29:51.787 に答える