Я новичок в ASP.NET MVC, и я пытаюсь внедрить лучшие практики для приложения малого и среднего размера, которое использует веб-службу в качестве источника данных. Веб-сервис предоставляет следующие методы для поддержки приложения:MVC Repository Pattern/Web Services SoC Question
- AuthenticateCustomer - возвращает идентификатор клиента, если действительный адрес электронной почты/пароль
- GetCustomer - возвращает упорядоченный объект, содержащий информацию о клиентах
- Etc
Мой вопрос: все эти службы возвращают значения Success (bool) и Message (string) в зависимости от результата операции. Сообщение содержит описательную информацию, если произошла ошибка. Я не уверен, что вызов веб-служб принадлежит уровню репозитория, но я думаю, что важно иметь возможность передавать значения «Успех и сообщение» через уровни «Репозиторий -> Сервис ->». Единственный способ, которым я могу думать делать это либо засорение Repository методы с амбулаторными аргументами:
public int AuthenticateCustomer(string Email, string Password, out bool Success, out bool Message);
или создать какое-то оболочка, которая содержит намеченное возвращаемое значение (целое число), и успех и ценность сообщений. Тем не менее, каждый метод веб-службы возвращает разные значения, поэтому оболочка одного размера подходит для всех. Кроме того, эти значения должны быть переданы через уровень сервиса, и похоже, что валидация какого-то рода происходит на уровне репозитория.
Любые мысли о том, как выполнить: 1. Разделение проблем (проверки, доступ к данным через веб-службы), а ... 2. Имея возможность поддерживать обратную связь, полученные от веб-службы и передать его через все путь к просмотру?
P.S. - Извините за короткий вопрос. Это немного сложно объяснить с помощью какой-либо краткости.
Martin, Ваш ответ имеет смысл. Поскольку я думал об этом, мое приложение не «владеет» данными и не несет ответственности за сохранение данных в постоянном хранилище (этот веб-сервис обрабатывает это), что устраняет необходимость в явном репозитории. Спасибо за ваш вклад. – Ariel