I was under the impression they are all basically the same. Are model objects also the same?
Right now, in my architecture, I have:
class Person 
{
    public string PersonId;        
    public string Name;
    public string Email;
    public static bool IsValidName() { /* logic here */ }
    public static bool IsValidEmail() { /* logic here */ }
}
class PersonService
{
    private PersonRepository pRepository;
    PersonService()
    {
        pRepository = new PersonRepository();
    }
    public bool IsExistingEmail(string email)
    {
        //calls repo method to see if email is in db
    }
    public Person GetPerson(email)
    {
        return pRepository.Get(email);
    }
    public void SavePerson(Person p)
    {
        if (Person.IsValidEmail(p.Email) && !IsExistingEmail(p.Email)
        {
            pRepository.Save(p);
        }
    }
}
class PersonRepository
{
    public void Save(Person p)
    {
        //save to db
    }
    public Person Get(string email)
    {
        //get from db
    }
    public bool IsExistingEmail(string email)
    {
        //see if email in db
    }
}
So which of the above classes are POCO, Domain Object, Model object, entity?
 
     
     
     
     
     
    