s2container.net-version.zipを解凍して出来たディレクトリの構成と説明です。(※ S2Container.NET 1.2.0-RC2以降)

ディレクトリ説明
s2container.net/buildS2Container.NETのリリースビルドされたアセンブリ
s2container.net/dataExamplesで使用されるDBのDDL等
s2container.net/libS2Container.NETが参照しているアセンブリ等
s2container.net/sourceS2Container.NETのソースコード
wwwドキュメント

 Quillを利用する場合には以下のファイル(アセンブリ)への参照を追加する必要があります。

  • s2container.net/build/Seasar.Quill.dll

 なお、以下のファイル・ディレクトリをSeasar.Quill.dllと同じディレクトリに配置してください。

ディレクトリ説明
s2container.net/build/Seasar.dll Interceptorを作成したり、Seasar.dllに含まれるInterceptorを利用する場合は 参照の追加を行ってください
s2container.net/build/Seasar.DynamicProxy.dll
s2container.net/build/ja-JP/
s2container.net/lib/log4net.dll

 Seasar.Quill.QuillControlを使う場合はツールボックスに登録する必要があります。 「ツールボックスアイテムの選択」からSeasar.Quill.dllを選択してください。

 S2Container.NETを利用する場合には以下のファイル(アセンブリ)への参照を追加する必要があります。 なお、buildディレクトリにあるja-JPディレクトリはSeasar.dllと同じディレクトリに配置してください。

  • s2container.net/build/Seasar.dll
  • s2container.net/lib/log4net.dll

 次にアプリケーション構成ファイル(app.config)に必要であれば設定を行います。 アプリケーション構成ファイルについては以下のドキュメントを参照して下さい。

 DIContainer > アプリケーション構成ファイル

 S2Container.NETでは Apache Logging Services projectのlog4net を使用してログを出力しています。 そのためlog4netの設定を行わないとS2Container.NETのログが出力されません。 以下にlog4netの設定の一例を示します。

log4netの設定ファイルの指定

 AssemblyInfo等に以下の属性を指定します。 これはlog4netの設定ファイルにアプリケーション構成ファイル(app.config)を使う場合の設定です。

C#

[assembly: log4net.Config.XmlConfigurator(Watch=true)]

Visual Basic

<Assembly: log4net.Config.XmlConfigurator(Watch:=True)>

アプリケーション構成ファイル(app.config)にlog4netの設定を追加する

以下にTraceAdapterを使用した例を示します。

app.config

<configuration>

    <configSections>
        <section name="log4net"
            type="System.Configuration.IgnoreSectionHandler" />
        <section name="seasar"
            type="Seasar.Framework.Xml.S2SectionHandler, Seasar" />
    </configSections>
    
    <log4net>
        <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%-5p %d [%t] %m%n" />
            </layout>
        </appender>

        <root>
            <level value="DEBUG" />
            <appender-ref ref="TraceAppender" />
        </root>

    </log4net>
    
    <seasar>
        <!-- 省略 -->
    </seasar>
    
</configuration>

 以上でlog4netのセットアップは終了です。

 しかしlog4netの設定を行ったアプリケーション構成ファイルを含むアセンブリ内で最初にlog4netでログを出力させずに、Seasarアセンブリで最初にログが出力されると log4netはSeasarアセンブリ内のlog4netの設定を探すため、ログが出力されません。

 log4netの設定を行ったアプリケーション構成ファイルを持つアセンブリ内で最初にログを出力するか、プログラム起動時に以下のようにアプリケーション構成ファイルを読み込む処理を追加して下さい。

C#

System.IO.FileInfo info = new System.IO.FileInfo(
   log4net.Util.SystemInfo.AssemblyShortName(
   System.Reflection.Assembly.GetExecutingAssembly())
   + ".exe.config"); // アセンブリがdllの場合は".dll.config"

log4net.Config.XmlConfigurator.Configure(
   log4net.LogManager.GetRepository(), info);

Visual Basic

Dim info As New System.IO.FileInfo( _
   log4net.Util.SystemInfo.AssemblyShortName( _
   System.Reflection.Assembly.GetExecutingAssembly()) _
   + ".exe.config") ' アセンブリがdllの場合は".dll.config"

log4net.Config.XmlConfigurator.Configure( _
   log4net.LogManager.GetRepository(), info)

 アプリケーション構成ファイル(app.config)に必要であれば設定を行います。 アプリケーション構成ファイルについては以下のドキュメントを参照して下さい。

 データベース接続 - アプリケーション構成ファイル

 S2Unit.NETはS2Container.NETを使ったテストを楽しく簡単に行うためのテスティングフレームワークです。

 S2Unit.NETではGallioというテスト環境を使用しています。 事前にGallio v3.1 Update 2 build 397をインストールします。

 ※S2Unit.NETのバージョン1.4.0より前(.NET Framework3.5以前)のバージョンをお使いの場合は「Icarus GUI Test Runner」の「Tools->Plugins Browser」より「Gallio.MbUnit2Adapter」の「Disabled」というプロパティが「False」になっていることを確認して下さい。

 テストプロジェクトの「参照設定」で下記DLLを参照して下さい(「入手場所」はs2container.net-1.X.X.zipの解凍先下のパスです)。

 ○S2Unit.NET 1.4.X
DLLバージョン入手場所備考
Seasar.Unit.dll1.4.Xbuild/net4.0/S2Unit.NET本体
Gallio.dll3.1.397.0lib/net4.0/MbUnit3の実行に必要
MbUnit.dll3.1.397.0lib/net4.0/MbUnit3の実行に必要

 ○S2Unit.NET 1.3.X以前
DLLバージョン入手場所備考
Seasar.Unit.dll~1.3.Xbuild/net2.0/S2Unit.NET本体
MbUnit.Framework.dll2.4.2.355lib/net2.0/MbUnit2の実行に必要

 テストクラスはSeasar.Extension.Unit.S2TestCaseクラスを継承します。

アプリケーション構成ファイル(app.config)にS2Unit.NETの設定を追加する

S2Unit.NETで参照しているMbUnitとPCにインストールしているMbUnitのバージョン差異を吸収するため、アプリケーション構成ファイル(app.config)に下記の設定を追加します。

<?xml version="1.0" encoding="utf-8" ?>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="bin"/>
      <dependentAssembly>
        <assemblyIdentity name="MbUnit.Framework"
publicKeyToken="5e72ecd30bc408d5" culture="neutral" />
        <bindingRedirect oldVersion="1.0.0.0-2.999.999.999" newVersion="2.4.2.355" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

 使い方については、S2Unit.NETのドキュメントを参照して下さい

 S2AOP.NETは標準でSystem.Runtime.Remoting.Proxies.RealProxyを用いて実装されていますが、 これをCastle.DynamicProxyを用いたSeasar.DynamicProxyに差し替えることができます。(1.2.0 for .NET 2.0以降) Seasar.DynamicProxyについては以下のドキュメントを参照して下さい。

 AOP - Seasar.DynamicProxyによるAOP

 Seasar.DynamicProxyを利用する場合には、以下のファイル(アセンブリ)への参照を追加する必要があります。

  • s2container.net/build/Seasar.DynamicProxy.dll
  • s2container.net/lib/Castle.DynamicProxy.dll
    (Seasar.DynamicProxy.dllから見て解決できる場所にあれば参照に追加する必要はありません)

 以下のようにアプリケーション構成ファイル(App.config)にアセンブリ[Seasar.DynamicProxy]を追加します。

app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

    <configSections>
        <section name="seasar"
            type="Seasar.Framework.Xml.S2SectionHandler, Seasar" />
    </configSections>

    <seasar>
        <configPath>App.dicon</configPath>
        <assemblys>
            <assembly>Seasar.DynamicProxy</assembly>
        </assemblys>
    </seasar>

</configuration>

 以下のように、Seasar.Framework.Aop.Impl.DynamicAopProxyAspectWeaverクラスをdiconファイルに登録します。 他のAspectを適用したいComponentより、DynamicAopProxyAspectWeaverの方が先に解決できるように、 記述場所に注意して下さい。

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
"http://www.seasar.org/dtd/components.dtd">
<components>

    <component class="Seasar.Framework.Aop.Impl.DynamicAopProxyAspectWeaver" />

    ・・・
    
</components>

 以上でSeasar.DynamicProxyのセットアップは完了です。Seasar.DynamicProxyを用いたAOP実装に差し替えられました。

 Examplesを実行するには、Visual Studioでs2container.net/source/Seasar.slnを開き、 Seasar.Examplesプロジェクトをスタートアッププロジェクトに設定して下さい。 実行すると、ExamplesExplorerが起動しS2Container.NETの機能を体験することができます。

 Examplesでは一部、SQL Server 2000(もしくは MSDE 2000)を必要とする機能があります。 その機能を試す場合には、s2container.net/data/setUpDemo.batを実行し、Examples用のデータベースを作成します。 そして、Seasar.ExamplesのAdo.diconのデータベースへの接続文字列をお使いの環境に合わせて変更して下さい。