[英]MVVM and business layer architecture
我正在開發一個剛完成的應用程序:
現在的問題是:我把邏輯放在哪里?
根據
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頁(充滿制表符和手風琴)。
在這里,我知道視圖必須非常簡單,並且可以在單個對象上工作,然后對於每個ViewModel
,我應該在BL中有一個外觀。
CanEditPerson
必須是一種驗證建立的規則的方法,以確定當前用戶是否可以更改此人。 似乎非常合乎邏輯的領域(購買者必須建立pemessi)擁有版權,但是我不知道如何在DomainLayer
處理此事情,在BusinessLayer
使用該方法會更自然
您也可以在此處創建一個模型,並在其中聲明屬性和方法。 喜歡
public class Person
{
//Declare your property
LoadPerson ( id )
{
}
SavePerson (Person )
{
}
CanEditPerson ( id )
{
}
}
現在,您只需要在ViewModel中創建Person類的Property,就可以輕松訪問其Property和Methods。
private Person _PersonDetails;
public Person PersonDetails
{
get { return _PersonDetails??(_PersonDetails=new Person());}
set { _PersonDetails = value;}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.