patterns & practices Enterprise Libraryや、最近の@ITの市川さんの記事に大いに影響を受けて、Enterprise Libraryをずっと触ってみたかったのですが、やっとちょっとだけ見てみる時間ができました。
バージョンは、1.1(June 2005)です。
で、まずは@ITでも最初に取り上げられている、Data Access Application Block(DAAB)から見てみたわけですが、こういうのはやはり自分でラッパーは用意すべきなのでしょうね。
私のイメージでは、Datasetの取得は
ds = db.GetDS(tbl,sql)
てな感じでやりたいのですが、DAABはそこまで提供はしてくれていません。しかも、おそらく一番手軽なDataset取得メソッドであるExecuteDataSetメソッドは、その中のテーブル名が”Table”という固定文字で書かれているので、取得したあと使う側はそれを認識していないといけないわけです。
なので、ラッパーとして
    Public Const TBLName As String = “Table”
    Public Function GetDS(ByRef sql As String) As DataSet
        Dim db As Database = DatabaseFactory.CreateDatabase()
        Dim dbCommandWrapper As DBCommandWrapper = db.GetSqlStringCommandWrapper(sql)
        Return db.ExecuteDataSet(dbCommandWrapper)
    End Function
みたいな感じのものがあるとよいなと思ったわけです。この場合は使う側は
    ds = xx.GetDS(sql)
    ds.Tables(xx.TBLName).DefaultView.Sort = xxx
みたいな感じになります。
しかし、もう少し探してみると、
    public virtual void LoadDataSet(DBCommandWrapper command, DataSet dataSet, string tableName)
なんてものが用意されていました。これを使うと、ラッパーの中身は
        Dim ds As New DataSet
        Call db.LoadDataSet(dbCommandWrapper, ds, Me.TBLName)
        Return ds
となります。この方が、何かとよい気がしますが。使い分け必要かな・・・。
で、.NET2.0環境では、まだ動かせません。構成ファイルの書き方が違うような、別の場所のような・・・もう少し調べてみましょう。