2010-03-01から1ヶ月間の記事一覧
O/Rマッパー Doma 1.2.1 をリリースしました。ダウンロードはこちらからどうぞ. http://doma.seasar.org/downloads.html Maven2 からのご利用はこちらを参照ください. http://www.seasar.org/wiki/index.php?Maven2RepoRemote 1.2.0からの変更点は次のとお…
1.2.1をリリースしたばかりでなんですが、1.3では新しい組み込み関数をサポートします。1.2.1では、「nullでなくかつ長さが0でない文字シーケンスだけを検索条件に含める」場合、たとえば次のようにSQLを記述します。 select * from employee where /*%if na…
DomaのDolteng対応?に意見をいただきありがとうございました。需要があるということが確認できて助かりました。しかし、結論としてはDolteng対応は見送りたいと思います。理由は、 JPetStoreのサンプルがSeasarを使った場合のブランクプロジェクトの役割を…
DomaでDoltengに対応したらうれしい人はどれくらいいるでしょうか。また、対応といったときにどこまで対応していてほしいでしょうか? Persistenceの項目でDomaを選択できればOK? Scaffoldが必要? 対応するのかどうかわかりませんが、意見があれば聞いてみ…
これは次のバージョン(1.2.1を予定)で入れます。本当は1.2.0に盛り込めればよかったんですが、このアイデアを思いついたのがリリースした後でした。どういったものかというと、注釈処理(apt)で生成したクラスのstatic初期化子でバージョンチェックを行います…
簡単に紹介します。 LocalTransactionにhasSavepointメソッドの追加 セーブポイントの存在チェックができるようになりました。 簡単なコードではセーブポイントのあるなしは自明なので役立たないと思いますが、セーブポイントの設定やロールバックに条件分岐…
Doma 1.2.0をリリースしました。 もう1.2.0かよって思うかもしれませんが、公開されたAPIを変更(追加/修正等)されたり何らかの移行作業が必要になったりする場合に真ん中のバージョン上げることにしています。一番右のバージョンは、それ以外の小さな変更…
上で示した挙動がいやな場合もあるかもしれません。 そのときは、IKernelの実装クラスを作成してそれを使います。具体的にはIKernelのHandleMissingBindingメソッドをオーバーライドしてfalseを返します。 public class MissingBindingDisabledKernel : Stan…
自動登録という機能があるわけではなく、Kernel(コンテナ)に問い合わせて存在しなかったらインスタンス化したりDIしてくれるようです。これは便利。 それと、IKernelのIntercept拡張メソッドを使うと条件に引っかかるメソッドにインターセプタが適用できま…
他のテストツールとの比較がありますね。 http://xunit.codeplex.com/wikipage?title=Comparisons&referringTitle=Home SetupとTearDownの代わりが、コンストラクタとIDisposable.Disposeというのはおもしろい。 あと気に入ったのは例外のテスト。期待する例…
NUnitの後継らしいです。 http://www.codeplex.com/xunit Ninjectで使っていたのでちょっと見てみました。たとえばこんな感じで使っています。 [Fact] public void ProviderReturnsConstantValue() { var sword = new Sword(); provider = new ConstantProvi…
Domaのローカルトランザクションについては、以下を見てください。 http://doma.seasar.org/reference/transaction.html http://doma.seasar.org/apidocs/org/seasar/doma/jdbc/tx/LocalTransaction.html このAPIをどう簡単に呼び出すかについて考えてみまし…
O/Rマッパー Doma 1.1.0 をリリースしました。ダウンロードはこちらからできます。 http://doma.seasar.org/downloads.html クイックスタートのドキュメントを書き換えています。 http://doma.seasar.org/quick_start.html トランザクションに関するドキュメ…
上の例では省いていますが、ローカルトランザクションはbeginしたら必ずcommitかrollbackする必要があります(ただし同じスレッド内であれば異なるインスタンスのcommit/rollbackでもいい)。rollbackはトランザクションがアクティブであろうとなかろうと呼…
ローカルトランザクションですが、セーブポイントを使うためのAPIも作りました。 @Test public void testSavepoint() throws Exception { LocalEmployeeDao dao = new LocalEmployeeDaoImpl(); // トランザクションを取得 LocalTransaction tx = AppConfig.g…
usingしておきます。 using Ninject; using Ninject.Extensions.Interception; using Ninject.Extensions.Interception.Attributes; using Ninject.Extensions.Interception.Infrastructure.Language; using Ninject.Extensions.Interception.Request; イン…
Inteceptorの機能はExtensionとして提供されています。ダウンロードはここからできます。 http://github.com/idavis/ninject.extensions.interception/downloads インターセプタの実装が2つ(Castle DynamicProxyとLinFu)あるのでどちらか版を選ぶといいと…
Domaで正式にサポートすることにしました。使い方はこんなかんじです(例外ハンドリングは省いています)。 LocalTransaction tx = AppConfig.getLocalTransaction(); tx.begin(); EmployeeDao dao = new EmployeeDaoImpl(); Employee employee = dao.select…
Ninjectのコードを読んでいて知りました。そういうことができるんですね。 /// <summary> /// A hack to hide methods defined on <see cref="System.Object"/> for IntelliSense /// on fluent interfaces. Credit to Daniel Cazzulino. /// </summary> [EditorBrowsable(EditorBrowsableState.Never)] pub…
Visual Studio 2010 のbeta2を使っています。Call HierarchyはVisual Studio 2010から入った新機能なんですが、仕様なのかバグなのかわからない挙動があります。 class Program { static void Main(string[] args) { IHoge hoge = new Hoge(); hoge.Say(); }…
たいした比較じゃないですがちょっと気になったので.NET4で試しました。 ストアドプロシージャの定義。 CREATE PROCEDURE [dbo].[PROC_DTO_PARAM] @param1 int, @param2 int OUTPUT, @param3 int OUTPUT AS BEGIN SET @param2 = @param2 + @param1; SET @par…
インジェクションのタイプは、3つだそうです。 コンストラクタインジェクション プロパティインジェクション メソッドインジェクション バージョン1のころはフィールドインジェクションがあったようですが、バージョン2で廃止したそうです。C#やVB.NETの場合…
モジュールを動的に読み込めます。まず、Assemblyから。 [global::Microsoft.VisualStudio.TestTools.UnitTesting.TestMethod] public void Dynamic_module_loading_by_Assembly() { var kernel = new StandardKernel(); kernel.Load(AppDomain.CurrentDomai…
C#で書かれた軽量なDIコンテナNinjectをちょっとだけ使ってみました。GuiceのC#版のようです。最近バージョン2がリリースされたみたいですね。 サイト http://ninject.org/ 作者のブログ http://kohari.org/ あんまりドキュメントがないのが残念ですが、コー…