ObjectDataSource
ASP.NET 2.0からはデータバインド機能としてDataSourceコントロールが追加されています。
データバウンドコントロール(GridViewやDetailsView)をDataSourceに結びつけることにより、ノンコーティングでデータ処理を記述できます。
DataSourceコントロールとしては、SqlDataSource、ObjectDataSource等がありますが。
SqlDataSourceはSQLをaspxに埋め込むことになり、ビジネスロジックの再利用ができない2階層アプリケーションになってしまうため、自分が使うことは無いと思います。
っというわけで通常はObjectDataSourceを使うんですが、ObjectDataSourceにもちょっと不満はあったりします。
ObjectDataSourceに指定できるビジネスロジックのクラス・メソッドが、具象クラスのメソッド、staticメソッドのみのようで。
具象クラスのメソッドを指定した場合、インスタンスの管理もObjectDataSource内で行われてしまいます。
これだと、ビジネスロジックのInterfaceとImplの分離みたいなことが出来ないんですよね。
.NET系だとこういうアーキテクチャを採用しているケースは少ないんですかね?
自分としては、Javaでも.NETでも「仕様と実装の分離」はやりたいところなんですが。
ObjectDataSourceを使ってビジネスロジック層のInterfaceとImplを分離したい場合、手動でデータバインドのコードを書くか、あるいはObjectDataSource用のビジネスロジックラッパーみたいなものが必要になってしまいます。
DIコンテナみたいなものを使用する時に、Interfaceだけを指定しておけば実行時にそのImplを使用してくれるDataSourceクラスが欲しいんですよね。
で、DataSourceコントロールを自作する場合、DataSourceControl派生、DataSourceView派生の他、デザイナ用にDataSourceDesignerとかも作らなきゃならないわけで(’A`)
とりあえず「そのうちやる」に分類しておきます(´ω`)