Я пытаюсь обернуть голову проверкой ввода пользователя и проверки бизнес-объекта. Предположим, что я работаю с объектом Customer. Он имеет следующие свойства: CustomerId, FirstName и LastName. Требуется имя FirstName и LastName, длина которых не может превышать 50 символов.Проверка правильности ввода данных и проверка бизнес-объекта путаница
Я использую ASP.NET MVC 3. Я также экспериментирую с Fluent Validation (но не обязательно должен быть эта система проверки).
Когда я нахожусь на Create зрения клиента, я прохожу вид на CustomerViewModel:
[Validator(typeof(CustomerViewModelValidator))]
public class CustomerViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
В CustomerViewModelValidator я установил необходимые правила для проверки, как описано выше. Все это проверяется на вид. Теперь у меня есть вопрос. В моем приложении у меня есть сервисный уровень, здесь я хочу применить всю логику приложения. Предположим, что я хочу сохранить нового клиента, тогда у меня будет метод «Сохранить заказ» в CustomerService, который вызывает метод Save CustomerRepository.
У меня может быть другое приложение (кроме описанного выше веб-приложения), которое будет использовать мой сервисный уровень. Так что это будет означать, что мне придется проверять объект Customer, если он создан. Возникают следующие вопросы:
- Нужно ли проверять объект Customer в CustomerService, чтобы проверить FirstName и LastName?
- Было бы лучше создать новый класс валидатора для проверки класса Customer? Или я должен поделиться им?
- Нужно ли также проверять CustomerId? Я имею в виду, что он должен быть больше нуля, но как я могу использовать нового клиента, где Id равен 0?
Если кто-то может поделиться некоторыми проницательностью/статьями в этом, это будет оценено.
Я хотел бы добавить некоторые бизнес-правила, где бы это было? Где и как я могу реализовать бизнес-правила?