我有相當多的使用VB6,VB.NET,C#等編程的經驗,並且使用了ADO,然後是SubSonic,現在我是學習nHibernate,因爲大部分潛在的工作我都可以使用nHibernate。我不確定什麼是訪問數據庫的一攬子方法
事情是,我一直在編程基礎上,我被教導,閱讀或理解爲最佳實踐。最近,有人通過作品中的扳手讓我思考。直到現在,我一直在訪問我編寫的核心應用程序和附加的DLL中的數據庫。
這是什麼人說結束如下,因此我的問題:
我可以告訴你 ,你通常不會想這樣做 - 外部類庫應該不能訪問該數據庫
我想要做的是有一個共享/靜態類的nHibernate會話,可以在應用程序的全球範圍內,並從任何DLL消耗。這個類是在一個「核心」DLL中的所有dll和應用程序參考。就像我說的,我正在學習nHibernate,所以它可能不是這樣。
要說我質疑我的數據庫訪問方法是輕描淡寫。
任何人都可以直接告訴我嗎?
編輯:
我想望着眼前已經被註釋,這取決於數據庫是如何被訪問。我傾向於永遠不要把用戶名/密碼憑證等硬編碼在任何DLL中。
更具體地說,我的查詢與NHibernate的會話有關。我有一個靜態類,一個助手類,它在應用程序啓動時被調用,然後創建新的會話並將其附加到當前上下文(對於Web應用程序),然後每當我需要會話時調用「GetCurrentSession」。這個靜態類位於「核心」dll中,可以通過引用的任何DLL等進行訪問。這是行爲的目的。我唯一的問題是,這可以嗎?我應該以另一種方式去做嗎?
嗯,我可能正在想這個人究竟是怎麼回事。然而,由於我已經使用Subsonic和現在的nHibernate,它們基本上是外部的Dll,與你所提到的類似。我猜想CAS或專用應用程序池可以防止消耗這些資源的攻擊。 – Anthony 2011-04-15 18:22:57