SQL Injection対策として パラメータ化必須という状況において、 パラメータの解釈部分を抽象化してくれているわけではなさげ、だなあと思いつつちょっと使ってみていたところ。
FactoryのCreateHogeメソッドは、通常のSqlconnectionなどのクラスのコンストラクターと異なり、 引数をつかって初期化してくれる便利メソッドがあんまり実装されていないのでコードが若干冗長になり気味。
画像ファイルを保存するのに Image型のフィールドに入れようとしたら、DbTypeには Binary型(8000bytesまで) というのしかなくて、 その辺もサーバ環境依存だよなあ。 (追記)…と思ったけど、Binary型に対して、dbparameter.Size に長さを指定すれば8000bytesまでという訳でもないらしい。
MSがWebPartsとして汎用パーツの開発をする、というチャレンジにおいてFactory デザインパターンが必要だった、という状況は良く分かる。 が、現実の案件開発においては結局のところビジネスロジックを別レイヤーとして実装しておいて変更しやすくしておく、 ぐらいの方がよいと思われる。
チューニングを視野に入れると、例えば巨大ファイル対策として SQL Server に BLOB 値を書き込むときのリソースの節約 までやろうとすると、更に依存性は高まるわけで。
やっと開通した模様なので申し込み中。プロバイダは久々に hi-ho にしようかと思っている(050な電話番号ならIP電話が基本無料らしい)。でも一番重要なのは Flets.Net
Reporting Services, iTextdotNET, iTextSharp のどれにしようか調査中。 とりあえず SQL Server 2005 の Reporting Services を使ってみているところ。