Мобильные приложения и передача данных веб-сервисов (WCF и JSON) - PullRequest
3 голосов
/ 21 июля 2011

Я ищу некоторые передовые методики, касающиеся передачи данных между мобильными устройствами (Android сейчас, но концепции в значительной степени применимы и к остальным). В настоящее время у меня есть служба WCF, настроенная с рабочей конечной точкой JSON. Я начинаю модифицировать существующие методы сервиса с соответствующими WebGet / Invokes и т. Д., Чтобы сделать его RESTful. Служба реализует шаблон запроса / ответа, так что все взаимодействие между клиентом и службой заключено в сложный объект MessageRequest и MessageResponse.

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

  1. Создайте все объекты передачи данных в клиентском проекте, а затем создайте преобразователь JSON / DTO (GSON может здесь хорошо работать). Используйте объекты на стороне клиента для обработки всего клиентского управления данными до тех пор, пока не потребуется запрос к серверу, перейдите от DTO к JSON и отправьте запрос на сервер. Меня удивляет то, что это облегчает управление данными на стороне клиента, поскольку оно параллельно с областью обслуживания. Недостатком является то, что у них есть потенциал для разрушения, чем сложнее становится объект.
  2. Игнорируйте клиентскую сторону DTO и просто делайте все прямо из JSON. Преимуществом здесь является то, что он устраняет накладные расходы, связанные с более крупными объектами, и требуемое отображение. Недостатком здесь является то, что это кажется мне очень хрупким - любые изменения возвращаемого объекта необходимо обрабатывать глубоко в коде, а не просто вносить изменения в DTO и mapper на стороне клиента.

Есть ли лучший способ осуществить этот обмен данными? Или это единственные реальные способы справиться с этим? Как вы управляете передачей данных в своих мобильных приложениях?

1 Ответ

0 голосов
/ 21 июля 2011

У меня очень похожая настройка WCF, и я закончил тем, что создал очень легкие объекты данных на стороне клиента.Они управляют разделением JSONObject, представляющим себя, и создают любые подобъекты, в которых они нуждаются, но кроме этого это простые классы, в основном используемые для группировки данных и не содержащие бизнес-логики.Нам еще не нужно было выполнять кэширование на стороне клиента, но эти объекты были бы отличным местом для вставки кода SQLite, чтобы сохранить себя.

До сих пор он работал отлично, и мы даже смогли перенести клиентский код Android в другой проект, работающий на обычной Java, просто включив org.json.

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