Мне поручили работать на сайте, который использует MVC для уровня представления и который общается со службой WCF. Оба используют DTO для передачи информации туда и обратно.
В настоящее время DTO используются во всей части MVC (Пользователь, Адрес, Информация об учетной записи). Например, класс User в MVC имеет PersonDTO, который содержит всю информацию о пользователе, а также методы, специфичные для сети (Логин):
public class User
{
public PersonDTO Person { get; set; }
public void Login { /* Login */ }
}
Таким образом, чтобы получить имя пользователя, вы должны сделать:
var CurrentUser = new User();
var firstName = CurrentUser.Person.First;
Есть ли лучший способ сделать это? (Похоже, это должен быть CurrentUser.First)
Кроме словесности, есть ли подводные камни в этом?
Должны ли DTO перетекать в действия контроллера в MVC?