2013-09-23 59 views
0

我打算創建一個面向公衆的網站,每個用戶都有一個簡介頁面,他們可以定期維護/更新。在此頁面上,用戶可以上傳一些照片並更新他們的個人信息。 我有三層結構。創建數據層設計

我需要輸入來創建我的數據層。我已閱讀了許多帖子,但我不確定要採用哪種特定方法來完成。我已閱讀關於實體框架,微軟企業庫,核心ado.net等。許多博客都表示,最好使用普通ado.net來獲得更好的性能。

您能否指出哪些方法可以成爲我尋求更快處理和性能的案例的最佳方法。就技術而言,我正在尋找使用WCF和No MVC的asp.net,c#,數據調用。

此外,在普通ado.net的情況下,有任何準備使用庫,我可以使用和開始使用。

感謝

回答

0

我不會與平面ADO.NET去,如果你正在尋找的全貌,我會認爲這是一個微型優化 - 通過使用緩存,智能數據結構,你會取得遠遠超過通過使用普通的ado.net。 實體框架增加了一些成本,有一點毫無疑問,在這裏顯示(儘管它可能是過時的):

http://www.servicestack.net/benchmarks/

你可以使用一些微ORM框架,即在基準提及,但通常微來的是自己的成本,例如我見過的大多數微觀框架都存在連接問題(他們允許他們使用純sql,但沒有用於輸入c#的工具)。 例如,Stackoverflow具有人員配置文件,並且使用的是微型ORM Dapper,而且他們的性能非常好,因爲如果我沒有記錯的話,約95%的請求是從Reddis緩存中提供的,而不是數據庫。

如果您的公開個人資料將是全文可搜索的,並且您將擁有數百萬個可能是關係數據庫不是正確的選擇。

+0

我看着dapper.net,它看起來不錯。所以目前我的結構像表示層,業務層,數據層。那麼對於dapper.net,我所有的Db類對象都將位於Business層?由dapper提供的類將在數據層?我也想在使用WCF API進行數據庫調用。你能告訴我如何使用這個從UI到業務到數據層的呼叫。 – user1563677

+0

尚未使用Dapper,但通常數據實體類屬於數據層,則業務層和表示層可能擁有自己的DTO以在層之間傳輸數據。關於WCF - 除非特別需要SOAP,否則現在我會避免它,有WebApi和ServiceStack - 我認爲它們是更加輕量級的WCF版本,在移動世界中它們也更方便。總體而言,我會建議思考更簡單,否則你的範圍增長太快,可能會讀一些Ayende的帖子,他討厭複雜的東西:http://ayende.com/blog/19457 – Giedrius