2010-07-30 61 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这些应该在单独的库中,但是您的代码可能不够大以至于无法证明这一点。