Uploaded image for project: 'S2Container.NET'
  1. S2Container.NET
  2. CONTAINERNET-140

.NET Framework4.0での動作確認

XMLWordPrintable

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • 1.4.0
    • Affects Version/s: 1.3.18
    • Component/s: S2Container.NET
    • None
    • Environment:
      .NET Framework4.0

      .NET Framework4.0上でSeasar.NETを使用する際に問題がないか調査

      1.コンパイルする際にエラー、警告は発生しないか?
      2.Seasar.Testは全て成功するか?
      3.サンプルプロジェクトは動作するか?

      他にも確認する必要があることがあれば
      追記、コメントをお願いします。

      確認環境:
      Windows7(64bit),SQLServer2008,Gallio/MbUnit3.1
      .NET Framework4.0

      ===========================================
      1.コンパイルする際にエラー、警告は発生しないか?
      ===========================================
      A.発生する
      ○コンパイルエラー -----------------------------
      >Seasar.DynamicProxy
      (参照ライブラリをCastle.DynamicProxy.dll(ver.1.1.5.0)から
      .NET4.0対応のCastle.Core.dll,Castle.Windsor.dll(ver.2.5.0.80)に切り替えた場合)
      →Caltle.DynamicProxyのIF変更によるエラー
      ・'Seasar.Framework.Aop.Proxy.DynamicAopProxy' はインターフェイス メンバー 'Castle.DynamicProxy.IInterceptor.Intercept(Castle.DynamicProxy.IInvocation)' を実装しません。(Seasar.Framework.Aop\Proxy\DynamicAopProxy.cs) 他

      >Seasar.Unit
      (参照ライブラリをMbUnit(ver.2.4)からMbUnit.dll,Gallio.dll(ver.3.1)に切り替えた場合)
      →MbUnitのIF、名前空間変更によるエラー
      ・型または名前空間名 'Framework' は名前空間 'MbUnit.Core' に存在しません。アセンブリ参照が不足しています。
      (Seasar.Quill.Unit\QuillAttribute.cs他)
      ・型または名前空間名 'Invokers' は名前空間 'MbUnit.Core' に存在しません。アセンブリ参照が不足しています。
      (Seasar.Extension.Unit\S2Attribute.cs他)
      ・型または名前空間名 'DecoratorRunInvoker' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。(Seasar.Extension.Unit.S2TestCaseRunInvoker.cs他)
      ・型または名前空間名 'DecoratorPatternAttribute' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。Seasar.Extension.Unit.S2Attribute.cs)
      ・型または名前空間名 'IRunInvoker' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
      (Seasar.Extension.Unit\S2Attribute.cs他)

      >Seasar.Tests
      →MbUnitのIF変更によるエラー
      (参照ライブラリをMbUnit(ver.2.4)からMbUnit.dll,Gallio.dll(ver.3.1)に切り替えた場合)
      ・'ColumnAttribute' は、'Seasar.Dao.Attrs.ColumnAttribute' と 'MbUnit.Framework.ColumnAttribute'' 間のあいまいな参照です。
      (Seasar.Tests\Dao\Impl\RelationKeyTest.cs)
      ・'MbUnit.Framework.Assert' に 'Ignore' の定義がありません。
      (Seasar.Tests.Dao.Id.IdentityIdentifierGeneratorTest他)

      ○警告 ----------------------------------------
      ・Seasar.Tests
      'System.Data.OracleClient.OracleCommand' は古い形式です: 'OracleCommand has been deprecated.
      http://go.microsoft.com/fwlink/?LinkID=144260' Seasar.Tests\Extension\ADO.Impl\BasicDbParameterParserTest.cs 他

      ==================================================
      2.Seasar.Testは全て成功するか?
      ==================================================
      A.失敗するものがある
      *要詳細調査 ------------------------------------------------------------------
      ・Seasar.DynamicProxy
      →プロパティインジェクションが実行されない(setterが呼ばれていない)
      →インスタンスがsingletonにならない

      *.NET4.0、参照ライブラリの変更により発生した可能性あり ----------------------------------
      ・Seasar.DynamicProxyを使用したテスト
      (詳細は https://www.seasar.org/issues/browse/CONTAINERNET-138 参照)

      ・DtoMetaDataImpl#GetPropertyTypeを使用したテスト
      →取得されるプロパティの順番が変わっているため自動生成されたSQL文のAssertに引っかかる

      ・Assert.AreEqualsでint型とDecimal型の値を比較しているテスト
      →同じ数値でも別の値として扱われる
       (例えば同じ「7777」でも「7777と7777b」として比較される。Decimalの方をInt32にキャストすると7777同士の比較になる)

      ・ResourceUtilTest#TestGetResourceNoException_動的アセンブリ
      →「System.InvalidCastException: 型 'System.Reflection.Emit.InternalAssemblyBuilder' の
      オブジェクトを型 'System.Reflection.Emit.AssemblyBuilder' にキャストできません。」

      ・「Table_Name」、「_Table_Name」、「Table_Name」,「TableName」が
       →同じ名前として処理されている?
       →同じWindows7(64bit)+SQLServer2008でSeasar.NET1.3.18のテスト(.NET2.0)を
        動かした場合は成功する

      ・float型を使用しているテスト
       →文字列に変換した場合の有効桁数が6桁→14桁になっている?
       →同じWindows7(64bit)+SQLServer2008でSeasar.NET1.3.18のテスト(.NET2.0)を
        動かした場合は成功する

      *64bitOSでの問題点(.NET4切替ではなく環境の問題なので別タスクで管理したい) -----------------
      ・Microsoft.Jet.OLEDB4.0は32bitのOSでしか動作しない?
       →「System.InvalidOperationException: 'Microsoft.Jet.OLEDB.4.0' プロバイダーはローカルのコンピューターに登録されていません。
      場所 System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper)」
       →http://architect360.apricot-jp.com/500tips/microsoftjetoledb40.html
       →XlsRader,XlsWriterが正常に動作しなくなる
      テストした環境
      ○成功:32bit windowsXP
      ×失敗:64bit windows7

      *Windows7(多分vistaも)上での問題点(.NET4切替ではなく環境の問題なので別タスクで管理したい) ----
      ・DTCxxxInterCeptorを使用したテスト(例:Seasar.Tests.Extension.Tx.Impl.DTCRequiredInterceptorTest)
      →System.EnterpriseServices.RegistrationException: このタスクを実行するには、管理者資格情報が必要です。システム管理者にお問い合わせください。 ---> System.EnterpriseServices.RegistrationException: アセンブリ 'Seasar, Version=1.3.18.0, Culture=neutral, PublicKeyToken=1d0d0c484d50ca62' を登録できませんでした。 ---> System.UnauthorizedAccessException: レジストリ キー 'HKEY_CLASSES_ROOT\Seasar.Framework.Util.CaseInsentiveSet' へのアクセスが拒否されました。

      =========================================
      3.サンプルプロジェクトは動作するか?
      =========================================
      1,2の問題が片付いた後に確認としたい。

            Assignee:
            koyak koyak
            Reporter:
            koyak koyak
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: