Я привык украшать классы моделей данных атрибутами аннотаций данных, но пурист во мне слегка недооценивает включение в него чисто презентационных атрибутов, таких как формат отображения. Однако я очень рад сохранить здесь атрибуты, связанные с валидацией. Одна веская причина, по которой я должен продолжать хранить все аннотации и т. Д. В модели данных, заключается в том, что моя модель представления объединяет классы модели данных, например, мое свойство ViewModelBase.DetailItem<TEntity>
в модели представления является просто ссылкой на класс сущности в моей модели данных. Если бы я хотел переместить аннотации представления в модель представления, мне пришлось бы довольно радикально пересмотреть свой дизайн, чтобы я дублировал свойства модели данных в моей модели представления и использовал инструмент сопоставления объектов для заполнения объектов модели представления на основе объектов модели данных.
Где я должен делать свои аннотации данных?
Кстати, вот как выглядит мой черновик ViewModelBase
:
public class ViewModelBase<T>
{
public virtual string PageTitle { get; set; }
public virtual string ViewHeading { get; set; }
public virtual ViewMode ViewMode { get; set; }
public virtual IEnumerable<T> ItemList { get; set; }
public virtual T DetailItem { get; set; }
}