Я проектирую разные слои планировщика в c #.Это будет служба, работающая в фоновом режиме без графического интерфейса.
Это мой базовый уровень архитектуры (конечно, это лишь небольшой фрагмент структуры.
Я сомневаюсь в «наилучшей практике» с точки зрения архетику. Я читал о POCO, объектах значений, DTO, доменной модели и, насколько я понимаю, представленный ниже неправильный подход к DTO.
В моем классе "ScheduleDTP" у меня есть несколько методов, выполняющих некоторые относительные сложные манипуляции с датой, поступающей из базы данных. CalculatePriority - это упрощенный пример одного из методов
Свойства базы данных: ID,Имя, Частота, LastRun
Управляемые свойства: Приоритет
Цель менеджера заданий состоит в том, чтобы оценить все расписания и требования.
Насколько я понимаю, DTO должен содержать толькоданные, и передать их между различными уровнями. Я также считаю, что это не должно быть resposi JobManagerбили тоже.
public class ScheduleDTO
{
public Guid ID { get; set; }
public string Name { get; set; }
public int Frequency { get; set; }
public DateTime LastRun { get; set; }
//Calculation based on the values above
public double Priority
{
get
{
return CalculatePriority();
}
}
public double CalculatePriority()
{
return (DateTime.Now - LastRun.AddSeconds(Frequency)).TotalSeconds / 100;
}
}
Должен ли я создать объект другого типа, POCO, Domail Model, ..., который манипулирует данными в DTO?
Я действительно ценю любую помощь о том, как создатьразные слои или что-то, что могло бы привести меня в правильном направлении