著作一覧 |
こんだ、ASP.NETだ。最初Railsでやろうと思ったんだけど、Webサーバーを仕込む時間がとれなかったから、IISで素直に動くASP.NETに決定。
しかしデフォルトがVB.NETなんだな(IISでASP.NETサイトを作ろうとするとそうなっている)。
でもC#だ。
で、データソースを作って……と思ったが、画面とデータベースがえらく異なる。表示上の問題で横を日付にして縦をキーにしてという、テーブルを横縦に展開したような感じとなる。日付ごとに集計するようにSQLを組むことも考えたが、ちょっとあまりに複雑になりそうなんで(行は行で集計したりするからグルーピングが必要だったりいろいろ)、結局、一度TableAdapterから読み込んだRowSetを元にオブジェクトコレクションを作って、それをGridへデータソースとして与えることにした。
とかやっていて、それがモデル層のエンティティとプレゼンテーション層のエンティティの分離だな、と思ったということ。
それにしても、ADO.NETでもコードは書かない。SQLは書くけど。特にASP.NETの場合はデータセットもXMLが生成されるだけで実行時に動的にバインドされるから(ただし、型付けは行われるのでソースはまったく見えないのにインテリセンスは利いたりして、これはこれで独特の世界でおもしろい。クェリデザイナのインテリぶりもすさまじく、どう考えてもデザイナでは作りようがないようなSQLを解析していろいろやってくれる(このへんは、SQL ServerからSQL解析部を利用するようになっているのかも))ちょっととまどったり。Windowsアプリケーションの場合はコードが生成されるから再利用性(トランザクションのサポートの追加とか)も高いんだが、そのへんが逆に弱いんじゃないかと思ったり。
それにしてもASP.NETでのコード記述量の少なさも圧倒的で、セッションへ明示的に保持することとPreviousPageのためにプロパティをコードする程度で、あとはSQL書くことを除けばほとんどツールだけいじっていれば済む(CSSとの連動は弱いかも。あと、Calendar使って思ったが、はやくAjax(Atlas)連携してほしいかも。いちいちポストバックするのでフリッカーが今となってはすごく気になる。
ジェズイットを見習え |