2014-12-26 29 views
0

我正在從頭開始設計一個系統。 我考慮:DAL體系結構的用戶會話

  1. 是否使用DAL在所有VS直接數據庫訪問(ORM例如)
  2. 如果我使用DAL,做我保存/直接管理自己的用戶會話通過我的應用程序或在DAL ?

的基本架構是客戶端 - >應用程序後臺 - > DAL - > DB

回答

0

Data Access Layer可以使用ORM工具(如Hibernate(渣),NHibernate的(.NET))做訪問數據庫。這沒問題。你可以抽象funcionalities到模型層,並實現它在你的DAL項目,樣品:

public interface ICustomerPersistence 
{ 
    Customer Get(int id); 
    bool Save(Customer customer); 
} 

,並使用ORM或另一種方式來訪問數據庫(ADO.NET或JDBC)實現它。

使用ORM工具,您將在應用程序和數據庫之間有一個內部層。另一方面,ORM工具可以爲您和您的團隊提供一些生產力持久化對象,而不是編寫SQL查詢。在這兩種情況下,SQL都必須是乾淨的以提供性能。使用ORM工具,可能需要使用跟蹤工具來查看由ORM生成的SQL命令。對於NHibernate,有一個NHProf。

對於第二個問題,依賴你如何實現。像Hibernate/NHibernate這樣的ORM的大部分實現都是從DAL的上層控制ISession對象。例如,作爲Web應用程序的一個很好的實踐,ISession在開始請求中打開並關閉到結束請求。有時它也由交易完成。

+0

Thanks @felipe,爲了更加清晰,我編輯了第一個問題。 –

+0

我添加了更多內容。無論如何,我建議你使用ORM工具來實現你的DAL,但是,確保你知道當你使用ORM時會發生什麼。請記得檢查是否能幫助您找到解決方案。 –