Я в настоящее время надеюсь разрабатывать некоторые сервисы WCF и хотел получить мнение сообщества о лучшем способе обработать операцию / контракты данных.
У меня есть 2 основных контракта на операцию, первое создает кавычку, и второе добавляет объект к кавычке (и вычисляет общие количества позади сцены).
Первые взятия в информации о клиенте и хранят информацию, и возвращает кавычку.
Вторые взятия в кавычке и объекте объекта, вычисляет общие количества и возвращает кавычку с объектом.
Мой вопрос о том, как разработать контракты данных в этом сценарии?
Для CreateQuote кавычка должна возразить быть переданной в с клиентским свойством и набором свойств хранилища или должна там быть некоторым объектом QuoteRequest, который содержит клиента, и храните объект, но без кавычки объект передал в?
Для AddQuoteItem QuoteItem должен возразить быть переданным в с необходимым набором свойств включая объект Кавычки или должен там быть объектом QuoteItemRequest, который имеет объект Кавычки и объект объекта (без отношения), и затем перерасчетная Кавычка с объектом QuoteItem возвращается?
Другими словами, они должны выглядеть примерно так?
Quote CreateQuote(Quote quote);
Quote AddQuoteItem(QuoteItem quoteItem);
Или они должны выглядеть примерно так?
Quote CreateQuote(QuoteRequest quoteRequest);
Quote AddQuoteItem(QuoteItemRequest quoteItemRequest);
Я бы сказал, что обертывание их в обертки запроса/ответа может оказаться немного излишним. Всегда можно предположить, что параметры методов WCF-службы - это "запрос", а возвращаемый тип - это "ответ".
В вашем сценарии передайте в метод CreateQuote тип Customer и тип Store и верните тип Quote. Затем в метод AddQuoteItem передайте тип Quote и верните либо снова ваш тип Quote, либо bool, указывающий на успех.
Опять же, в вашем сценарии классы запросов/ответов будут просто одноуровневыми обертками вокруг одного типа. Я могу только представить себе сценарий, в котором вы возвращаете класс, подобный классу response, чтобы обернуть несколько различных типов в единственное возвращаемое значение метода.