Seasarプロジェクト ＞ Seasar.NETプロジェクト ＞ S2Container.NET ＞ セットアップ

# 目次

上へ

- 配布物の説明
- Quillのセットアップ
- S2Container.NETのセットアップ
- log4netのセットアップ
- S2ADOのセットアップ
- S2Unit.NETのセットアップ
- Seasar.DynamicProxyのセットアップ
- Examples

# 配布物の説明

上へ

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

ディレクトリ | 説明
--- | ---
s2container.net/build | S2Container.NETのリリースビルドされたアセンブリ
s2container.net/data | Examplesで使用されるDBのDDL等
s2container.net/lib | S2Container.NETが参照しているアセンブリ等
s2container.net/source | S2Container.NETのソースコード
www | ドキュメント

# Quillのセットアップ

上へ

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のセットアップ

上へ

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

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

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

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

# log4netのセットアップ

上へ

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)

# S2ADOのセットアップ

上へ

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

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

# S2Unit.NETのセットアップ

上へ

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

S2Unit.NETではMbUnit 2.3.83を使用しています。 事前にMbUnit 2.3.83 以上をインストールしておく必要があります。

テストクラスはSeasar.Extension.Unit.S2TestCaseクラスを継承します。 S2TestCaseクラスはSeasar.Unit.dllに含まれてるので、テストコードを含むプロジェクトではSeasar.Unit.dllを参照に追加して下さい。

詳しくはS2Unit.NETのドキュメントを参照して下さい

# Seasar.DynamicProxyのセットアップ

上へ

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

上へ

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のデータベースへの接続文字列をお使いの環境に合わせて変更して下さい。

© Copyright The Seasar Project and the others 2004-2009, all rights reserved.