Visual Studio工具将在任何新的ASP.NET MVC 2区域中创建“模型”,“视图”和“控制器”文件夹。
此文件夹还应包含哪些内容?如果仅在Areas/MyReallyGreatArea/Binders
中引用自定义ModelBinder,您是否会将其置于MyReallyGreatArea
中?
最佳做法是什么?
答案 0 :(得分:1)
是的,当我ModelBinder
中的自定义MyReallyGreatArea
时,我只按照您的建议将其放入该区域内的文件夹中,例如Areas/MyReallyGreatArea/Binder
秒。当ModelBinder
稍后被其他区域使用时,我将其移动到名为Areas/Shared/Binders
或类似的文件夹中。这样我就把课程放在靠近使用位置的地方。如果ModelBinder
没有使用它,为什么还要打扰客户MyOtherEvenGreaterArea
?
这同样适用于其他一切。如果MyReallyGreatArea
仅使用它,则它将位于此处。如果它与不同的区域共享,我将其放入Area/Shared
(并且可能在那里正确命名的子文件夹)。
虽然这可能只是一个小问题,如果你单独在这个项目上工作,或者当项目仍然很小时,一个经过深思熟虑的结构会随着项目的发展或更大的团队工作而得到回报。在某些情况下,不同的团队甚至可以处理不同的领域。
答案 1 :(得分:0)
我个人喜欢将areas文件夹保持为精简,但这取决于你的项目大小。如果你有一个大的'web'项目,那么你可能想要将你的模型/绑定器和其他普通对象保存在一个单独的库中,用于你的业务逻辑,或者如果你只有几个区域和很少的其他类需要那么我喜欢将区域特定粘合剂保留在区域文件夹下的想法。
我不喜欢在'web'项目中浮动的共享普通类,并且相信它们应该在一个单独的库中,但是你的代码可能不够大,无法证明这一点。