Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 表示层逻辑和服务/实体_C#_Design Patterns_Architecture_Domain Driven Design - Fatal编程技术网

C# 表示层逻辑和服务/实体

C# 表示层逻辑和服务/实体,c#,design-patterns,architecture,domain-driven-design,C#,Design Patterns,Architecture,Domain Driven Design,我有一个.net网络表单“NewShift.ascx”文件。它为您提供了一个界面,用于添加有关您将要工作或刚刚工作的新班次的信息。比如你工作了多少小时,你的值班经理,等等。在我的代码中,我想将创建日期标签的文本更改为当前日期日期时间。现在,如果且仅当它在今天下午5点之前,否则,请明天读取日期,原因我将不讨论 此外,我可能希望根据用户以某种方式设置日期的格式,例如,如果他们根据数据库中保存的设置(而不是浏览网站的当前国家)与一种文化或另一种文化相关联 你可能会争论,因为它是如此简单的逻辑,我可以在

我有一个.net网络表单“NewShift.ascx”文件。它为您提供了一个界面,用于添加有关您将要工作或刚刚工作的新班次的信息。比如你工作了多少小时,你的值班经理,等等。在我的代码中,我想将创建日期标签的文本更改为当前日期日期时间。现在,如果且仅当它在今天下午5点之前,否则,请明天读取日期,原因我将不讨论

此外,我可能希望根据用户以某种方式设置日期的格式,例如,如果他们根据数据库中保存的设置(而不是浏览网站的当前国家)与一种文化或另一种文化相关联

你可能会争论,因为它是如此简单的逻辑,我可以在后面的代码中写出来,但假设我有很多这样简单的小事情在改变值,格式化日期,基于逻辑显示值,等等

我的理解是,如果我在代码背后做了所有这些,这将是智能UI反模式。 上述逻辑应该在哪里

我听说没有贫血的领域模型,并确保我的实体能够提供回答特定领域问题的功能。我还听说了尽可能多地利用服务层来完成一些事情

因此,如果我必须做以下工作:

基于X和Y将标签文本更改为今天或明天 将两个值相加,并根据用户偏好为该总和指定一个标签文本 根据星期几有条件地隐藏复选框 这样的逻辑应该在哪里?在移位对象上?或者某种形式的移动服务

谢谢

基于X和Y将标签文本更改为今天或明天 根据星期几有条件地隐藏复选框 这两个问题显然都是演示方面的问题。这意味着UI控件ascx文件应该做出这些决定。如果可以添加转换器,请参阅以了解更多详细信息。它是为Windows窗体构建的,但是您可以将类似的内容应用于web。特别是使用web表单时,我发现这会大大清除标记

将两个值相加,并根据用户偏好为该总和指定一个标签文本 这实际上取决于这两个值是什么。如果这些值在您的模型上,您只需要显示它们的总和,并且该总和仅对演示文稿而不是业务流程有意义,那么这将是演示文稿的问题,您可以在标记中使用转换器,或者,如果您遵循MVVM,您可以将该摘要放在视图模型的新名称属性下


如果这两个值的总和是某个业务流程的一部分,那么该代码应该在您的域中,并且应该返回一个已经有总和的模型。

谢谢-现在,如果这是一段常见的代码,我将重复使用5到6次呢?