私は、あらゆる種類のドキュメント、勉強できるオープンソースのnhibernate winformアプリケーション、またはwinform/nhibernateフレームワークを探しています。 NhibernateのcontribとNhAddinsに少し見ましたが、それはすべてです。 ウェブはたくさんありますが、winformについてはほとんどありません。 なぜですか?nhibernate winformアプリケーションの例
答えて
Sebasian Talamoni available hereによって書かれたnHibernate + Windowsフォームのミキシングについて議論が進行中です。ディスカッション+コードが含まれています。
これは最近のものです。それはコード生成を持ち、spring.netを使用しています。 http://www.codeproject.com/KB/cs/NHibernateForWinforms.aspx
winformsの例があまりにも少ない理由は、imhoです。スマートクライアントでは、スマートクライアントでは管理がはるかに複雑です。
ウェブの世界では、httpセッションの開始時にISessionを開き、httpセッションが終了したときにセッションを閉じます。
スマートクライアントにhttpセッションの概念を直接変換することはできません。複数の画面が同時に開いている、最小化されている、他の画面が常に開いて閉じている、変更を保存せずに閉じてしまうものなどがあります。アプリケーション私はここから離れて滞在する
あたり
1セッション:
は、私は三つの基本的な戦略があると思います。シングルトンセッションによって古いエンティティ例外のような例外が発生した場合、そのセッションは現在使用できなくなります。あなたのアプリは基本的にはドゥードゥーです。画面あたり
セッション
これは少し優れている、あなたは、単一のセッションが吹くまでならば、あなたのアプリがパンを下って行くことは避けてください。ただし、一部の画面では、同じunit of workで共同作業する場合があります。同じセッションを共有する必要があります。または、永続エンティティがそれらをロードしたセッションと親和性を持っているため、画面間でエンティティを共有しようとすると、issuesが表示されます。
永続的な会話
私は、これが進むべき道だと思います。あなたは、あなたの作業単位の範囲を保持するサービスを定義します。このサービスのメソッドを呼び出すたびに、正しいISessionが目に見えない形でスワップされます。あなたがあなたのサービスを終えたら、あなたはそのサービスの別の方法を呼び出し、そのセッションは処分されます。
サービスのインスタンスを画面間で共有することができるため、セッションを共有できます。複数のセッションを同時に開くことができます。これらのすべてはAspect Oriented Programming技術によって行われます。属性を使ってサービスにタグを付ける以外のアクションは必要ありません。
これは非常に複雑なので、ファビオの記事はhere、hereおよびhereとなっています。
unoffical nh addinsにこのパターンの実装があります。これはウィンザーではおそらく他のIoCコンテナに変換することができます。
Fabio Mauloは、WinFormsアプリケーションでのセッション管理に関して素敵なpostを持っています。また、下部にリンクされているサンプルアプリケーションのダウンロードもあります。
This Oren Einiによる記事は、私が見たデスクトップのWindowsアプリケーションの実装方法の最良の例です。詳細なデザインパターンとベストプラクティスは、WinFormsまたはWPF \ Silverlightアプリケーションに適用する必要があります。
- 1. WinFormアプリケーションのNHibernateとAUTOFAC
- 2. winformアプリケーションのデフォルトボタンプロパティ
- 3. winformアプリケーションの例外DragDropはIDEの外で発生します
- 4. C#WinFormアプリケーションのデバッグ
- 5. WinFormアプリケーションのSecure ConnectionString
- 6. WinFormアプリケーションの配備
- 7. Protovisと.net winformアプリケーション
- 8. WinformアプリケーションのEF(Self Track Entities)
- 9. WinFormアプリケーションのMVVM実装
- 10. 例外NHibernateのオブジェクト
- 11. C#winformのzeromq pub/subの例
- 12. WinFormアプリケーションとMS Office参照
- 13. WinFormアプリケーションをWPFアプリケーションに変換する
- 14. NHibernateの例外の処理
- 15. NHibernateを使用したWinformでの制約違反の処理
- 16. SqlParameterCollectionの例外です。 NHibernate
- 17. NHibernate例外テキストの解析
- 18. 特定のクライアントのwinformアプリケーションの変更
- 19. winformコントロールとwinform usercontrolsを埋め込んだWPFアプリケーション
- 20. WinformアプリケーションでのSilverlightオブジェクトの表示
- 21. winformアプリケーションの設計/モーダルモデルの回避
- 22. WinFormアプリケーションのローダーの作成方法
- 23. 複数のホストを持つwinformアプリケーション
- 24. NHibernate検索とLucene例外
- 25. winformアプリケーションでレポートを一元化
- 26. .NET WinFormアプリケーションでスレッドを管理する
- 27. Winformアプリケーションでdllを使用するC#
- 28. WinFormアプリケーションを起動するAerosnaped Right Aligned
- 29. コンソールアプリケーションをWinFormアプリケーションにリメイクしました。
- 30. NHibernateの一時オブジェクトの例外
リンクをありがとう、私はすでにこのサンプルアプリケーションを試してみました。 ジップに含まれているドキュメントはinterrestingです。 私はこのようないくつかの他の記事を探したいと思います。 著者が続編を出版しているかどうか知っていますか? –
私は頭の上から何も知らない。その記事には便利で興味深い情報があります。しかし、Google検索では他の多くの情報が返されます。 –
私は直接利用できるものを見つけるのが好きです。nHibernateのために見つけることができるブログプラットフォームのトンやトンのようです。そしてWinform :)。 –