2011-01-25 31 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