2013-04-28 71 views
2

我知道在MVC它是很好的利用工作類的存儲庫模式和單位在ASP.net MVC項目的設計模式。(在業務層業務邏輯。)MVC 4與工作模式的存儲庫和單位

我的問題是,我是由微軟推出的MVC 4新手。我在MVC 4環境中也應用了上述提到的模式(存儲庫和工作單元),是否在該設計模式下啓動我的項目是一個好方法。

在MVC中,我需要滿足其他類型的模式爲大型MVC項目。

任何人都可以瞭解MVC 4,請發表評論,認爲高度讚賞。

回答

5

只是因爲Repository模式是在每一個教程中,並不意味着它是一個事實上的標準,解決了MVC世界的問題。

首先,您需要了解您的應用程序的複雜性。存儲庫可能會給應用程序增加不必要的複雜性.BTW您沒有提及如何與數據庫交談。如果您計劃使用任何ORM工具(如Nhibernate,Entity框架),那麼你已經有了一個很好的抽象。爲什麼你需要更多的抽象層次。

上有很多爭論是否要使用存儲庫patterns.Here有一些很好的解釋

Do we need Repository ?

Life without repositories - Ayende

所有著名ORM工具自帶的模式來實現你已經提到(工作單位和存儲庫)。

+0

正如我在我的描述提及。他們在安排這些教程的同時安排與微軟的會議。你應該檢查'Dan Whalin'和'John Papa'背景。他們是「微軟MVP」。 「Scott Guthrie」也推薦他們(在他們的會議期間)。 – 2013-04-28 07:08:48

+0

我不是反repository.I已經用它自己並沒有真正受益much.If使用ORM工具,你可以嘲笑他們。 – 2013-04-28 07:16:17

+0

+1在跳躍到任何當前的流行詞之前促進思考。 – 2013-04-28 07:16:21

7

「在mvc中很好地使用存儲庫模式和工作單元類」 - 這是非常值得懷疑的,雖然說像「被認爲是今天最好的模式之一」是明顯錯誤的:模式只是好的或在某些情況下是不好的,如果沒有它,你無法確定它們是否是好的選擇。

一個問題:「我應該使用哪種模式」不先思考你需要編寫應用程序的細節開始是一種安全可靠的方式來創建一個過度設計的應用程序。

存儲庫和UoW已被Domain driven design推廣,如果沿着這條路走下去,它們會很有意義。 DDD對於某些應用程序來說是非常好的方法,但我認爲這不是大多數應用程序。許多網絡應用程序只是CRUD應用程序,它們不會受益於DDD或包裝對存儲庫中實體的每次訪問 - 例如,在這裏選擇一個微型ORM通常是一個更爲理想的方法。

如果你仍然確定你的應用真的需要這種方法,而不是自己實現所有這些東西,我建議使用像NHibernate這樣的框架,因爲你需要更多的只是UoW和回購 - 他們需要標識映射實施等NHibernate的提供了很多的東西開箱即用(例如它Session類型實際上是UOW的優秀執行加得多),而且涵蓋了許多細節,你只能找到一個你需要進入實施的細節後一次你自己的版本。實體框架也可能是一個很好的選擇,雖然它不是我最喜歡的。

當然,編寫自己是延長你的知識的好方法,但如果你需要這個生產應用程序,你會通過挑選現有的實現節省了大量的時間,金錢和頭痛。

+1

非常感謝您提出寶貴的意見。但我確切的問題是,設計模式適用於MVC 4環境? – Prageeth 2013-04-28 10:35:23

+2

模式對環境來說不是好的/壞的,它們對應用程序來說不好/不好。當然,這些模式可以在ASP.NET MVC應用程序中非常成功地使用,但它們也可能是相當糟糕的選擇。我個人有時會使用它們,有時我不會。當我的應用程序不符合要求時,我也被過度設計我的應用程序所燒燬。 – 2013-04-28 11:57:00

+0

感謝您的回覆它真的有幫助的答案。 – Prageeth 2013-04-28 13:17:17

相關問題