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