私はASP.Net 2.0サイトを持っていて、それをMVCパラダイムに翻訳したいと思っています(これは初めてです)が、ゼロから始めています。
私の古いサイトにはいくつかのテーマがありますが、あちこちを読んでいると、テーマがMVCパラダイムにうまく適合しないようです。
質問は:
テーマユーザーのカスタマイズ可能なサイトを構築するためのMVCのベストプラクティスは何ですか?該当する場合、少し例を挙げていただけますか?
注: this は知っていますが、ベストプラクティスや開始方法については触れていません。
ASP.NET MVCで「テーマ」を実装するために使用してきた私のコードは次のとおりです。
ASP.NET MVC:カスタムViewEngineを使用してテーマフォルダーを実装する
CSSファイルをスワップアウトしてテーマを変更できるのは素晴らしいことですが、これは多くの場合、実際にはあまり実用的ではありません。特に、各テーマが完全に異なるレイアウトを持つ必要がある場合。その場合、レンダリングされるCSSとHTMLを変更する必要があります。そのため、上記のリンクにあるコードを記述しました。
ASP.NET、RoR、PHPなど、あらゆるWebアプリにテーマを設定するには、CSSが正しく、意味的に正しいHTMLを使用します。
CSSの力の最も良い例は CSS Zen Garden です。
w3schoolsには素敵な CSSの紹介/チュートリアル があります。
各ユーザーは関連するスタイルシートを持つことができ、該当する場合はいつでも選択されます:
<link rel="stylesheet" type="text/css" href="<%= Model.SelectedStyleSheet %>"/>
テーマはタグをスタイルアップすることを目的としていたため、CSSを使用して同様のアプローチを作成できます。デフォルトのテーマをcss定義にコピーすることから始めることをお勧めします。
html:<input type="button" />
css:input {color:light-blue}
次に、デフォルト以外のテーマがあったものについては、それらにクラスを適用できます。すべてのテーマをCSSとして書き換えるにはしばらく時間がかかりますが、一度行ってみる価値はあります。
jQuery-ui テーマは素晴らしく、実装するのも難しくありません。
Jsおよびcssファイルにリンクするだけで、アイコンを忘れないでください。また、これらのリンクでは必ずUrl.Content()を使用してください。それ以外の場合は、運用サーバーに展開すると、正しいパスにリンクされない可能性があります(そのトラップに一度陥りました)。