Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms nhibernate winform应用程序示例_Winforms_Nhibernate - Fatal编程技术网

Winforms nhibernate winform应用程序示例

Winforms nhibernate winform应用程序示例,winforms,nhibernate,Winforms,Nhibernate,我正在寻找任何类型的文档,一个我可以研究的开源nhibernate winform应用程序,或者更好的winform/nhibernate框架。 我在Nhibernate contrib和NhAddins中看到了一点,但仅此而已。 关于web的内容很多,但关于winform的内容却很少。 为什么会这样?有一项工作正在进行中,讨论如何混合Sebasian Talamoni编写的nHibernate+Windows表单。它包括讨论+代码。我发现这是最近的一个。它具有代码生成功能,并使用spring.

我正在寻找任何类型的文档,一个我可以研究的开源nhibernate winform应用程序,或者更好的winform/nhibernate框架。 我在Nhibernate contrib和NhAddins中看到了一点,但仅此而已。 关于web的内容很多,但关于winform的内容却很少。
为什么会这样?

有一项工作正在进行中,讨论如何混合Sebasian Talamoni编写的nHibernate+Windows表单。它包括讨论+代码。

我发现这是最近的一个。它具有代码生成功能,并使用spring.net
winforms示例如此之少的原因在于,智能客户端的会话管理要比web世界复杂得多

在web世界中,http会话启动时打开ISession,http会话结束时关闭ISession

智能客户端中没有http会话概念的直接翻译;多个屏幕同时打开,一些最小化,其他屏幕一直打开和关闭,一些关闭而不保存更改。。。你明白了

我认为有三个基本策略:

每个应用程序1个会话

我会远离这个。请记住,如果您的单例会话引发了一个异常(如过时的实体异常),则该会话现在不可用。你的应用程序基本上是在嘟嘟嘟嘟

每个屏幕的会话

这是一个更好的方法,你可以避免你的应用程序在一个会话失败的情况下崩溃。但是,某些屏幕可能会在同一时间协同工作。它们需要共享同一个会话,否则您将尝试在屏幕之间共享您的实体,因为持久实体与加载它们的会话具有亲缘关系

持续对话

我认为这是一条路要走。您定义了一个包含工作单元范围的服务。每次调用此服务上的方法时,正确的ISession都会以不可见的方式为您交换。完成服务后,调用另一个方法并释放会话

服务实例可以在您的屏幕之间共享,因此它们共享会话。可以同时打开多个会话。所有这些都是通过面向方面的编程技术来完成的,您不需要采取任何其他操作来用属性标记您的服务

这听起来很复杂,所以看看法比奥在上面的帖子,然后


在中有此模式的实现。这在温莎是可行的,可能会将其转换为其他IoC容器

Fabio Maulo在WinForms应用程序中有一个关于会话管理的好方法,底部还链接了一个示例应用程序下载

Oren Eini的文章是我见过的关于如何实现桌面windows应用程序的最好例子。设计模式和最佳实践it细节应适用于WinForms或WPF\Silverlight应用程序。

感谢您的链接,我不久前已经尝试过这个示例应用程序。zip中包含的文档是InterTesting。我想找一些其他类似的文章。你知道作者是否出版了续集吗?我想不出有什么续集。那篇文章提供了有用、有趣的信息。不过,谷歌搜索会返回很多其他信息。我想找到一些可以直接使用的东西,比如除了nHibernate之外,你可以找到很多的博客平台。和Winform:)。