DataSourceコントロールが属するレイヤ

ここ数日,DataSourceコントロールが頭の中をもやもやとしています.先ほど帰宅途中に思いついたことがあったので,忘れないうちに書き留めておきます.


かりにレイヤ構造がプレゼンテーション層・ビジネスロジック層・データアクセス層とあったとして,DataSourceコントロールはやっぱりプレゼンテーション層なんだと思います.非UIではありますが,Webコントロールですから.かりにDataSourceコントロールを他の層に位置づけた場合,その層はプレゼンテーション層に依存することになってしまうので具合が悪いです.


ちなみに,ASP.NETにおけるコードビハインドモデルによってMVCアーキテクチャを実現,というのはちょっと違う気がします.確かにWebフォームとビハインドコードによって見た目と処理が分かれます.しかし

  • Control: ビハインドコード
  • View: Webフォーム

ではなく,

なのかなと.いわゆるWeb系のMVCではなくて,Form系の(ちょっと懐かしい感じのする)MVC.いや,単なる思い付きなのでまったく根拠はないのですが,なんか合ってる気がします.


そんなわけで,8月26日の日記についてですが,DataSourceコントロールはModelの変更をViewに通知するための便利な仕組みということで,Model=DBならSqlDataSourceコントロール,そうでないならObjectDataSourceコントロールって感じ.ObjectDataSourceコントロールでキャッシュ機能が使えるかは未調査なんですが,使えない場合は独自に実装(SQLServer2005のクエリ通知機能を使ったりとか)するのが良いのかも.


単なる思い付きなので,明日になったら正反対の結論になってるかもしれませんが……