ASP.NET豆知識1 ASPコントロールというオブジェクトについて


ASPコントロールとはなんぞや、という内容は長くなるので持論から書きますと、僕は「"シンプルに値を表示/取得する"以上の機能を求めるのであれば、ASPコントロールを使うべきではない」と考えています。もしASPコントロールの扱いに困っているなら、通常のhtml要素とJavaScriptを使って書くことを強くお勧めします。


インプラスではWebシステムの開発に VB.NETのASP.NETを使用しています。ASPコントロールとは、<ASP:TextBox...>みたいな感じでaspxファイルに記述されている、サーバ側から参照できるコントロールです。

このASPコントロールはサーバ(VB)側からもページ(html,JavaScript)側からも見えるので、単一のオブジェクトのように思えますが、僕は「VBオブジェクト」と、「html要素」というまったく異なる2つのオブジェクトを繋いで表現したもの、と考えています。言語からして違うのだから、同一のオブジェクトであるはずがないのです。

Web系のシステムでクライアントに表示されるのはhtmlなので、html要素としてスタイルを設定したりReadOnlyなどといった属性を扱いたいところなのですが、VBの「ASPコントロール」ではなかなかうまく扱えません。

それもそのはず、VBは静的型付け言語で、データ型による制約が強い言語ですが、htmlは文章ドキュメント…文字列の塊でしかなく、そのプロパティにも当然「データ型」という概念は存在しません。しかしhtmlはプログラミング言語のオブジェクトのような階層構造を持っているので、その個々の階層についてあれやこれやと設定しようと思うと、可能ではありますが、とてとて大変なことになります。

そのうえ、ありがたいことにASP.NETさんはhtmlとVBオブジェクトを変換する時になんか色々と手を加えて整形してくれるので、サーバ側にしてもページ側にしても、細かく制御するのは困難です。

ですので、単純な読み書き以外の機能を求めるなら、ASPコントロールは使うべきではないと思うのです。

このブログの人気の投稿

技術メモ「503 Service Unavailable」

グーグルグループのメーリングリストの返信先が個人になってしまう

『ネットワークドライブ』のトラブル