Я смущен тем, какие данные формы должны быть включены при передаче данных из пользовательского интерфейса в слое презентации на уровень приложения, а затем в доменном слое для проверки. Я прохожу в DTO, но я слышал, что не должен. Скорее, я должен только передавать примитивы и скаляры в уровень домена. Я не уверен, как это делается, если не использовать структуру класса DTO. Ниже, как я использую DTO из моего пользовательского интерфейса:Какой формат является данными при переходе на уровень домена для валидации
Мой Пользовательский интерфейс может иметь следующие значения на экране:
Имя продукта: Продукт ABC
Код продукта: 1234
Описание: a)
Когда пользователь нажимает кнопку отправки, чтобы добавить эту запись в базу данных, я создаю DTO следующим образом:
public class NewProductDto
{
public string ProductName {get;set;}
public string ProductCode {get;set;}
public string Description {get;set;}
}
я прохожу этот DTO на прикладном уровне, то на уровне домена, где он считывает значения для проверки и создать новый экземпляр объекта.
Если я не должен этого делать, то как значения из пользовательского интерфейса должны быть упакованы для уровня приложения для приема и отправки на уровень домена для выполнения валидации и создания новых объектов?
Возможно, простая структура данных?
struct NewProduct
{
public string ProductName;
public string ProductCode;
public string Description;
}
struct NewProduct aNewProductStructure;
(т.е. CreateNewProduct (aNewProductStructure) вместо CreateNewProduct (aNewProductDto)
Заранее спасибо
---------- Обновление 2/24/2016 9?.: 58 утра
ОК, основанный на недавней информации Я упускал из виду, что, как представляется, уровень приложения должен получать DTO от пользовательского интерфейса, а затем преобразует его в куски, чтобы перейти в домен. Поэтому в моем примере выше уровень приложения должен проходить новый продукт, который будет создан как foll ows к доменному слою:
CreateNewProduct (ProductName, ProductCode, Description);
Определение для CreateNewProduct:
public int CreateNewProduct(string ProductName, string ProductCode, string Description)
{
....
}
В принципе, я должен пройти в отдельных значений к домену.