В моем приложении mpc asp.net у меня есть служебный уровень, который работает с бизнес-объектом, передает его на уровень репозитория и возвращает его на контроллер. Нет, я не могу решить, где мне нужно проверить объект. Первое место - использование аннотаций проверки достоверности данных с атрибутом компонента модели аннотаций в бизнес-объектов класса, например:Каков лучший способ/место для проверки?
[AcceptVerbs("POST")]
public ActionResult Edit(Source src)
{
if(!ModelState.IsValid){
return View("EditSource", src);
_sourceService.SaveSource(src);
return RedirectToAction("Index");
}
[MetadataType(typeof(Source.MetaSource))]
public class Source
{
private class MetaSource
{
[Required]
public string Name { set; get; }
[Required]
public string Url { set; get; }
}
public int? ID { set; get; }
public string Name { set; get; }
public string Url { set; get; }
public Source()
{
ID = null;
}
Второй способ - проверять объекты в уровне услуг, путем передачи словаря проверки на уровне услуг, например:
Я думаю о создании проверки на стороне клиента и добавлении локализации к ошибкам проверки, также мне нужно создать пользовательские правила с обращениями к базе данных и т. Д. Какие плюсы и минусы этого пути 2 или, может быть, мне нужно выбрать другой способ?