2010-07-30 62 views
4

Visual Studio工具將在任何新的ASP.NET MVC 2區域中創建「模型」,「視圖」和「控制器」文件夾。什麼和不屬於ASP.NET MVC 2區域文件夾?

Areas Folder in Visual Studio

應該還有什麼進入這個文件夾?例如,如果僅在MyReallyGreatArea中引用它們,您是否會在Areas/MyReallyGreatArea/Binders中放置自定義ModelBinder?

最佳做法是什麼?

回答

1

是的,當我自定義ModelBinderMyReallyGreatArea時,我只把它 - 如你所建議的那樣 - 放入該區域內的一個文件夾,例如, Areas/MyReallyGreatArea/Binder s。當一個ModelBinder稍後被不同的區域使用時,我將它移到名爲Areas/Shared/Binders或類似的文件夾中。這樣我可以將課程放在靠近使用位置的地方。爲什麼要打擾客戶ModelBinder如果MyOtherEvenGreaterArea不使用它?

對於其他所有情況也是如此。如果僅由MyReallyGreatArea使用它,它將位於那裏。如果它與另一個區域共享,我將它放入Area/Shared(並且可能有適當命名的子文件夾)。

雖然這可能只是一個小問題,如果您單獨在這個項目上工作,或者當項目仍然很小時,一個深思熟慮的結構會隨着項目的增長或作爲一個更大的團隊的工作而得到回報。在某些情況下,不同的領域甚至由不同的團隊開展工作。

0

我個人喜歡將區域文件夾保持爲儘可能瘦,但這取決於您的項目大小。如果你有一個大型的'web'項目,那麼你可能想保留你的模型/粘合劑和其他普通對象在你的業務邏輯的獨立庫中,或者如果你只有幾個區域,並且需要其他幾個類,那麼我喜歡在區域文件夾下保留區域特定粘合劑的想法。

我不喜歡在'web'項目周圍浮動的共享普通類,並且beleive這些應該在單獨的庫中,但是您的代碼可能不夠大以至於無法證明這一點。