Вернуть набор данных в веб-сервис или нет? - PullRequest
5 голосов
/ 02 ноября 2009

Есть ли лучшая практика в отношении возврата (или НЕ возврата наборов данных) из веб-служб .NET? В одном лагере говорится, что мы должны содействовать взаимодействию и использовать XML-схемы для определения полезной нагрузки веб-службы, в другом лагере говорится, что мы должны возвращать наборы данных, потому что это просто в Visual Studio и позволяет быстрее выполнить работу.

Некоторые аргументы в лагере антиданных:

  • Наборы данных не совместимы с WSI
  • Похоже, что наборы данных редко поддерживаются сторонним программным обеспечением

Некоторые аргументы в лагере pro-dataset:

  • Они очень удобны и быстро создаются в Visual Studio.
  • Мы (моя компания) развиваемся только в .NET, поэтому совместимость не является проблемой
  • Наборы данных на стороне клиента имеют преимущества для простоты использования

Ответы [ 3 ]

3 голосов
/ 02 ноября 2009

Использовать наборы данных? Я бы сказал тысячу раз нет. Они не совместимы с другими инструментами (как вы упоминаете). Конечно, сейчас ваши единственные потребители - это .NET, но все может быстро измениться, и приятно быть готовым.

См. XML-файлы для чтения.

Кроме того, если вы разрабатываете новые сервисы, пишите их с использованием WCF. Тогда вы можете выставить их как хотите. Если служба и потребитель являются внутренними и оба .NET, то вы можете использовать привязку TCP для повышения производительности. Затем, когда кто-то захочет связаться с вашим сервисом, вы можете добавить новую привязку веб-сервиса, чтобы его приложение Java (например) могло взаимодействовать с вашим сервисом. См. Выбор правильной привязки WCF для удобной блок-схемы.

1 голос
/ 02 ноября 2009

Я был бы в лагере, чтобы вы не отправляли его, но это решение будет приниматься исходя из того, что важно для вашей компании.

Если вы разрабатываете API веб-сервиса, это, по сути, договор между компанией и клиентами. Поэтому некоторые сотрудники компании могут начать использовать этот API для критически важных операций.

Затем вы получите запрос, чтобы он работал над Blackberry. Теперь вам нужно изменить веб-сервис, который может нарушать работу других приложений, вызывая волновой эффект.

Итак, если вы уверены, что вам никогда не понадобится поддерживать другие платформы, кроме .NET, тогда вы можете просто выбрать первый вариант.

0 голосов
/ 02 ноября 2009

Я бы тоже не пошел на наборы данных (как и большинство сообщества здесь). Как говорит Джеймс, вы никогда не уверены, что ваш сервис будет использоваться только приложениями .NET. Основная причина веб-службы в том, что это стандарт, который может использоваться всеми технологиями, если вы правильно его создадите.

DataSets также разрушает идеи доменного дизайна и разделения слоев и поэтому менее привлекателен, чем они были в начале. Я использую их только для демонстраций, которые должны быть быстрыми и грязными;)

Если вы действительно хотите «легкий» способ разработки (в среде IDE) и при этом соблюдать все стандарты, рассмотрите возможность создания своих служб с помощью WCF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...