我正在用 c# 设计调度程序的不同层。这将是一个在后台运行的服务,没有 GUI。
这是我的架构基线(当然只是架构的一小部分。
我不确定架构方面的“最佳实践”。我一直在阅读 POCO、值对象、DTO、域模型,据我所知,下面介绍的是 DTO 的错误方法。
在我的课程“ScheduleDTP”中,我有几种方法可以对来自数据库的日期进行一些相对复杂的操作。CalculatePriority 是其中一种方法的简化示例
数据库属性:ID、名称、频率、LastRun
操纵属性:优先级
作业管理器的目的是评估所有计划和按需。
据我了解,DTO 应该只包含数据,并在不同层之间传输数据。我也相信这也不应该是 JobManagers 的职责。
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 模型……来操作 DTO 中的数据?
我非常感谢有关如何构建不同层或可以引导我走向正确方向的任何帮助