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を利用する場合には以下のファイル(アセンブリ)への参照を追加する必要があります。
なお、以下のファイル・ディレクトリを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と同じディレクトリに配置してください。
次にアプリケーション構成ファイル(app.config)に必要であれば設定を行います。 アプリケーション構成ファイルについては以下のドキュメントを参照して下さい。
S2Container.NETでは Apache Logging Services projectのlog4net を使用してログを出力しています。 そのためlog4netの設定を行わないとS2Container.NETのログが出力されません。 以下にlog4netの設定の一例を示します。
AssemblyInfo等に以下の属性を指定します。 これはlog4netの設定ファイルにアプリケーション構成ファイル(app.config)を使う場合の設定です。
C#
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
Visual Basic
<Assembly: log4net.Config.XmlConfigurator(Watch:=True)>
以下に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)
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.dll | 1.4.X | build/net4.0/ | S2Unit.NET本体 |
Gallio.dll | 3.1.397.0 | lib/net4.0/ | MbUnit3の実行に必要 |
MbUnit.dll | 3.1.397.0 | lib/net4.0/ | MbUnit3の実行に必要 |
○S2Unit.NET 1.3.X以前
DLL | バージョン | 入手場所 | 備考 |
---|---|---|---|
Seasar.Unit.dll | ~1.3.X | build/net2.0/ | S2Unit.NET本体 |
MbUnit.Framework.dll | 2.4.2.355 | lib/net2.0/ | MbUnit2の実行に必要 |
テストクラスはSeasar.Extension.Unit.S2TestCaseクラスを継承します。
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>
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を利用する場合には、以下のファイル(アセンブリ)への参照を追加する必要があります。
以下のようにアプリケーション構成ファイル(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のデータベースへの接続文字列をお使いの環境に合わせて変更して下さい。