S2Daoメモ
S2Container.NET、S2Dao.NETと、S2Windows.NETを使った 画面遷移付きWindowsFormアプリケーションの従来タイプのVisual Studio2005用サンプルです。(C#2.0バージョン)
サンプルソリューション
Dao.DiconからTx.Diconとかを呼ぶとき
例えばSeasar.Sale.Forms.Tx.Diconのように「空間名」.「ファイル名」とかじゃなくいきなり<include path=”Tx.Dicon” />がOKなのか。しばらく悩んでしまった。
ビルドイベントのビルド後に実行するコマンドで
copy “$(SolutionDir)\M0010(ここは実際のディレクトリ)\*.dicon” “$(TargetDir)”/Y
copy “$(SolutionDir)\M0010\*.mdb” “$(TargetDir)”/Y
copy “$(ProjectDir)App.Config” “$(TargetDir)\$(TargetFileName).config” /Y
てな感じでDiconファイルとかを実行する環境にコピーしているのでいきなりTx.DiconでもOK。
ちなみにテストプログラムはテストプロジェクトをビルドするとFormsプロジェクトの方にコピーされるのでForms側にDiconファイルがなくてもOK。このビルドイベントってちょいと使えそうだね。
ただ、存在知らないと絶対見落とすよねぇ。
SQLServerの場合の設定(途中省いているからコピーしても動きません。)
App.conf
<?xml version=”1.0″?>
<configuration>
<configSections>
<section name=”log4net” type=”log4net.Config.Log4NetConfigurationSectionHandler,log4net”/>
<section name=”seasar” type=”Seasar.Framework.Xml.S2SectionHandler, Seasar”/>
</configSections>こっからしばらくLog4net関連
</log4net>
<seasar>
<configPath>App.Dicon</configPath> App.Dicon以外の時はここを変更しましょ。
<assemblys>
<assembly>Seasar.Dao</assembly>
</assemblys>
</seasar>
</configuration>
App.Dicon
<components>
<include path=”Dao.Dicon”/>
<!– ここから S2Windowsの設定 –>
</components>
Dao.Dicon
<components>
<include path=”Tx.Dicon” /><!– S2Dao.NETのDaoInterceptorとそれに必要なコンポーネント –>
<component class=”Seasar.Extension.ADO.Impl.BasicDataReaderFactory” />
<component class=”Seasar.Extension.ADO.Impl.BasicCommandFactory” />
<component class=”Seasar.Dao.Impl.FieldAnnotationReaderFactory” />
<component class=”Seasar.Dao.Impl.DaoMetaDataFactoryImpl” />
<component name=”DaoInterceptor”
class=”Seasar.Dao.Interceptors.S2DaoInterceptor”/><!– 得意先マスタDAO –>
<component class=”Seasar.Sale.Logics.Dao.IM得意先マスタDAO”>
<aspect>DaoInterceptor</aspect>
</component>
<!– 他のDaoがあれば –>
</components>
Tx.Dicon
<components namespace=”Tx”>
<!– Ado.dicon –>
<include path=”Ado.Dicon” />
<!– TransactoinContext(データソースで使用する) –>
<component name=”TransactionContext”
class=”Seasar.Extension.Tx.Impl.TransactionContext”>
<property name=”IsolationLevel”>
System.Data.IsolationLevel.ReadCommitted
</property>
</component>
<!– データソース –>
<component name=”SqlDataSource” class=”Seasar.Extension.Tx.Impl.TxDataSource”>
<property name=”DataProvider”>Ado.SqlClient</property>
<property name=”ConnectionString”>
“Data Source=FS;Initial Catalog=romax;Integrated Security=True”
</property>
</component>
</components>