Да, когда я настраиваю ModelBinder
только на MyReallyGreatArea
, я помещаю его - как вы предложили - в папку в этой области, например. Areas/MyReallyGreatArea/Binder
s. Когда ModelBinder
позже используется другой областью, я перемещаю его в папку с именем Areas/Shared/Binders
или аналогичную. Таким образом, я держу классы рядом с тем местом, где они используются. Зачем беспокоиться о клиенте ModelBinder
, если MyOtherEvenGreaterArea
не использует его?
То же самое относится ко всему остальному. Если он используется MyReallyGreatArea
, то только он будет находиться там. Если он используется совместно с другой областью, я помещаю его в Area/Shared
(и, возможно, там правильно указаны подпапки).
Хотя это, вероятно, будет незначительной проблемой, если вы работаете над этим проектом в одиночку или когда проект еще мал, хорошо продуманные структуры окупаются по мере роста проекта или работы над ним большой команды. В некоторых случаях в разных областях даже работают разные команды.