ADO.NET のラッパー
昨日は OLE DB.NET と MySQL Connector/NET のラッパークラスを公開したわけですが、そうなると当然 ADO.NET(SQLServer) 用のラッパークラスも欲しくなります。そこで ついでに作ってみました。といっても元々これを VB.NET で作ってまして、その後 MySQL 版を作成。そして急遽入用があって OLE DB.NET 用に C# で書き直したのが昨日の記事だったわけです。
で、参照系処理の場合、こんな感じで使えます。
更新系だとこんな感じになる・・・
しかしテーブルアダプターという便利なものがありながら、なんでわざわざラッパークラスを使うのかというのはワケがありまして、
- 不特定多数の環境に導入できるようにする必要がある。
- 客先によりビジネスルールが変わりカスタマイズが発生するため、スキーマに変更が生じる恐れがある。
これだとテーブルアダプターは返って使いづらいのですよ。そこで ADO.NET のラッパークラスの出番となるわけです。
GOF でいうなら Facade パターン―サブシステムを隠蔽化する―に当たりますね。このラッパーの場合は、ADO.NET 自体を隠蔽するワケです(完全ではありませんが)。
ちなみにVS2008 SP1 より、「ADO.NET Entity Framework」という新しい技術が導入されました。たいへん興味あるのですが、こちらも上記二つの要件に対応するのはちと難しそうですね。
以下、ソースです。
2010/10/10 追記
コードを少し修正しました。