マスターページを使っちゃダメか、
本当に使えんのか?
使えんのか?
やれんのか?
というエントリを書いて、中様、シャノン様、とりこびとさんにとても貴重なご意見を頂いたので新しいエントリとしてご紹介させて頂きます。
※読みやすいように一部コメントを微妙に修正させて頂きました。間違いがありましたらすぐに修正いたしますのでご指摘下さい。
【中様ご意見】
本来マスターページを使わずにユーザコントロールで解決すべきなんです。
ASP.NET1.xではそれしかなかったです。2.0ではマスターページ追加しました。
でもオブジェクト指向の一部の仕組みをマスターページで食っちゃうわけで、あんまりよくないよ。 と言うことやと思います。
【シャノン様ご意見】
オブジェクト指向のキモってのは、プログラムの部品の粒度を下げて保守性を上げることだと思います。
安易にマスターページを使っちゃうと、ページがマスタページとコンテンツページに二分されてしまい、粒度が大きくなってしまう。
マスタページの入れ子もできますけど、逆に言えば入れ子と言う形態しか取れないわけで、自由度が低いですね。
だから、各ページに共通で配置するものはユーザーコントロールにして粒度を小さく保つべきだ…ということかな?
ただ、マスタページとユーザーコントロールは排他的なものじゃなくて、各パーツはユーザーコントロールとして作って、マスタページ自体はコンテンツを持たず、ユーザーコントロールを配置する土台として使えば、両方を有効利用できるんじゃないかなー? というか、できるといいなー?
例えばこのBlogにしても、共通部分をパーツごとに分けると、
・タイトル
・目次
・利用状況
・ニュース
・記事カテゴリ
・書庫
・ギャラリ
・リンク
・フッタ
ってのがあるわけですよね。で、これらをマスタページに埋め込んで一枚板にしてしまうより、それぞれをコントロールとして作っておいた方が何かといいじゃん? と。
【とりこびとさんご意見】
シャノンさんの
>マスタページの入れ子もできますけど、逆に言えば入れ子と言う形態しか取れないわけで、自由度が低いですね。
これ、けっこうつらい部分です。