2011-01-25 61 views
1

你好 我想创建我的第一个nhibernate projet。 它将从与旧数据库相关联的winform项目迁移而没有强大的orm映射。 该项目非常大,所以我想从一开始就有一个好的建筑。nhibernate架构

我会有一些层:

  • 库:创建一个从NHibernate的
  • 型号会话:在bean对象,基本上是由的getter/setter特性与数据库中的同名

但我需要一些建议,你将如何处理这些操作? 如果我想创建一个项目,我应该直接从代码访问nhibernate?或者我应该创建一个业务逻辑层?

基本上我发现业务层的简单架构。 http://www.codeproject.com/KB/architecture/NHibernateArchitecture.aspx 你的感觉是什么?

另一个问题,它是一个具有较强验证(眼镜领域)的程序,应该在哪里进行验证?在winform项目或业务层?

回答

4

这很难说,并提供有用的建议,没有看到该项目,它的实际问题。例如,它是客户端服务器架构吗? “相当大”是什么意思?有太多不同的项目有适合所有的规则。

一般:

  • 在大多数情况下,这是非常有用的业务层。
  • 验证应该在业务层。还有NHibernate验证和其他一些验证框架,它们允许声明式验证。

最常见的错误我看到NH开始时是人们不理解持久性的无知。这意味着您应该编写业务逻辑而不访问数据库或NH。对这些实体进行更改,直到它们明确应用于数据库之前它们不是“暂时”的,它们在事务提交时隐式存储。这对代码有很大的影响。在很多情况下,没有“商店”或“更新”等等。

1

看看SharpArchitecture。这是NHibernate的一个非常好的框架。关于如何将所有东西连接起来的很好的例子。

http://www.sharparchitecture.net/

+0

我不知道它,但它似乎是专为ASP.net设计的。在这个问题中,我看不到任何与ASP的关系。 – 2011-01-25 15:11:06

+0

主项目是一个完整的winform项目 – 2011-01-25 15:24:43