Я делаю веб-проект в ASP.NET MVC. Каждая служба вызова контроллера выполняет некоторые операции. Давайте посмотрим на примереЧто такое хорошая практика с DB Services C#
public interface IProjectService
{
bool ActivateProject(int projectId);
//others
}
и реализован класс
public class ProjectService : IProjectService
{
private readonly IContextProvider _contextProvider;
public ProjectService(IContextProvider contextProvider)
{
_contextProvider = contextProvider;
}
public bool ActivateProject(int projectId)
{
using (var context = _contextProvider.GetContext())
{
var project = context.Projects.Where(p => p.ProjectId == projectId).SingleOrDefault();
project.Status = 1;
context.SaveChanges();
return true;
}
}
//others
}
В примере администратор хочет, чтобы активировать проект. У меня есть проверка в jQuery, поэтому администратор не может передавать ничего, кроме projectId.
Итак, что теперь должно вернуть этот метод? Должен ли я оставить его как пустоту? Допустим, есть ошибка с базой данных, поэтому я должен исключить исключение? Какая практика для такого рода операций?
_ «У меня есть проверка в jQuery» _ - это не то, как вы защищаете веб-службу. – CodeCaster
Что вы имеете в виду? Я имел в виду, что параметр метода всегда будет в порядке – miechooy
Вы никогда не сможете доверять пользовательским вводам. Просто потому, что вы передаете значение из jQuery, это не означает, что кто-то обходит jquery и отправляет данные прямо вам. Проверяйте серверную сторону, в 100% случаев. – Phill