我正在开发一个我刚刚完成的应用程序:
现在的问题是:我把逻辑放在哪里了?
根据
https://softwareengineering.stackexchange.com/questions/185448/mvvm-clarification
我必须从域逻辑中拆分应用程序逻辑,但我做了一个简单的例子:
我有一个ViewModel只能从数据库中收取费用并允许更改,那么我将有3个方法(仅保留示例):
LoadPerson ( id )
SavePerson (Person )
CanEditPerson ( id )
前2个必须调用UoW
的相应方法,但必须直接调用吗?
在早期使用asp.net创建的应用程序中,我为每个页面创建了一个带有外观的businessLayer,因此页面调用了外观的LoadPerson
,然后BL调用了LoadPerson
数据访问层。
这是我在这里使用的正确方法吗?
但在这种情况下,页面非常复杂,并且处理各种对象:我有一个基于大约100个项目的应用程序的6页(完整的选项卡和手风琴)。
在这里我理解视图必须非常简单并且可能在单个对象上工作,然后我应该在BL中为每个ViewModel
设置一个外观?
CanEditPerson
必须是一种方法,用于验证为确定当前用户是否可以更改此人而建立的规则。似乎非常合乎逻辑的领域(买家必须建立pemessi)拥有版权,但我不知道如何在DomainLayer
处理这个问题,我会更自然地在BusinessLayer
中使用该方法
答案 0 :(得分:0)
您还可以在此处创建一个模型,并在其中声明属性和方法。 喜欢
public class Person
{
//Declare your property
LoadPerson ( id )
{
}
SavePerson (Person )
{
}
CanEditPerson ( id )
{
}
}
现在你必须在ViewModel中创建Person类的属性,这样你就可以轻松地访问它们的属性以及方法。
private Person _PersonDetails;
public Person PersonDetails
{
get { return _PersonDetails??(_PersonDetails=new Person());}
set { _PersonDetails = value;}
}