S2.NET

illigalColumnNamePattern

S2Unitを使ってExcelからデータを読み込んでテストしているのですが、特定のカラムがどうしても読み込めずに悩みました。Seasar.NETのソースファイルを読んでみたところ、 private Regex illigalColumnNamePattern = new Regex("F[0-9]+$", RegexOptions.Com…

S2Unit.NETによるExcelシートの読み込み順

シート名に#{順序}と付けることで制御可能なのですが、シートの枚数が10枚くらいになってからSQLエラーが出るようになりました。1時間近く悩んで、ふとシート名を#1〜#10ではなく、#01〜#10にしてみるとビンゴ。数値ではなく文字列比較になっていたんですね…

instance=outer

Seasar.NETによるインスタンス管理ですが、outerの使い方を今頃知りました。コンテナの外側で生成したオブジェクトをGetComponentで取得出来るものなの?とか疑問だったんですが、InjectDependencyメソッドを使うんですね。(^^;diconファイル。

インスタンス管理で嵌る

ASP.NETでSeasar.NETを使っているのですが、インスタンス管理をsessionにしたところコンテナの初期化時にエラーが発生して数時間悩みました。で、原因はインスタンス管理をsingletonにしているコンポーネントにインジェクションしていたというオチで、分かっ…

S2Unit.NET

今日の大嵌りパート2。 S2Unit.NETでテストを楽しく簡単に これを使って、ロックの掛かった行に対するテストを書こうと思ったのですが。

AOPのパフォーマンス

S2.NETではRealProxyとDynamicProxyが選択可能なのでパフォーマンスの違いを見てみました。ポイントはDIコンテナの読み込み時間とAOPの割り込みコスト。

EntityBuilderのS2Dao.NET対応

元々、EntityBuilderを作成したのは、S2Dao.NETのためだったりします。Entityクラスを作るだけでなく、対応するインタフェースまで自動生成して完成です。ちょっと時間が掛かりましたが、やっと目的を達成しました。

SQLによる例外処理

個人的には例外はキャッチしない方針なのですが、SQL関連の例外についてはそうも行きません。重複やNULL制約などは例外ではなくエラー扱いにしたいところです。 try { int cnt = IUserDao.Insert(user); } catch (SQLRuntimeException ex) { // SQLRuntimeEx…

オブジェクトのシリアライズ

型付DataSetが使えない場合のことも考えて他の案も調査することに。S2Dao.NETを使った場合、Pureなクラスを扱うことになります。サーバー側のロジックを組む分には、こっちの方が都合が良いくらいなんですが、これをクライアントに返すときにが問題。型毎にW…

楽観的ロック

こんなことが出来たらいいなぁ、と妄想。 namespace My.Dao { [Bean(typeof(User))] public interface IUserDao { // 楽観的ロック // WHEREにプライマリキーだけでなく、更新するカラムも追加する [OptimisticLock] int Update(User user, User before); //…

S2Dao.NETのチューニング?

自分の仕事で使えないかとS2Dao.NETを調査中。 using System; using System.Collections; using Seasar.Dao.Attrs; namespace My.Dao { [Bean(typeof(MYTABLE))] public interface IMYTABLEDao { IList GetAllList(); } } S2Dao.NETはこんなインタフェースを…