2012-01-06 6 views
2

Я пишу приложение для социальных сетей. Я создал веб-сервис .Net с базой данных на Microsoft Azure, и я планирую назвать эту веб-службу для получения данных из облака и отображения ее пользователю. Похоже на Facebook.Извлечение данных из облака с помощью Android

Теперь у меня есть два подхода, и я не уверен, какой из них реализовать. Подходы следующие:

  1. «Каждый раз, когда происходит загрузка, вызывается веб-служба и перезагружается все данные». Это, конечно, самый простой подход, но правильно? Я имею в виду, что у меня около 30 видов деятельности, а половина из них загружает данные, а другая половина сообщений. Насколько я вижу, такой подход может быть проблемой, поскольку он может замедлить работу приложения. Он также может увеличить мой счет облака с таким количеством запросов. И я не знаю, правильно ли перезагружаться каждый раз.
  2. «Звоните в веб-службу каждые 10 минут и сохраняйте все данные в базе данных SQLite и обновляйте данные только в течение 10 минут или, возможно, даже с кнопкой обновления». Этот подход, вероятно, лучший, но я не уверен, стоит ли даже писать столько кода.

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

Пожалуйста, помогите мне здесь. Если есть даже лучший подход, пожалуйста, скажите мне.

+0

Предоставьте дополнительную информацию о функциональности и данных, если вы хотите получить более точный ответ – zode64

+1

whatsthebeef является правильным и, как вы сказали, первое решение очень часто бывает проще, так оно и зависит от вашего бюджета для первой реализации – kingston

+0

Очень хорошая точка, сложность - это соображение. – zode64

ответ

1

Это действительно зависит от типа данных, какой задержки требуется для данных и количества данных. Кроме того, размер проекта и польза вы получите от реализации, поскольку сложность будет увеличена. Более точный ответ дает дополнительную информацию.

Местное кэширование может быть очень хорошей идеей в подобной ситуации. Это довольно распространенная практика, и существует множество механизмов, которые можно было бы использовать. В зависимости от формата данных, полученных из веб-службы, вы можете хранить в

  1. базы данных, когда данные должны обрабатываться (поиск, запрашивать и т.д.), или имеется много данных.

  2. Файл (ы), иногда полезный, если вы работаете с форматированными данными, такими как xml или json, поскольку вы можете поддерживать структуру. Вы можете использовать native android caching, чтобы помочь в управлении хранилищем.

  3. Предпочтения, когда данные являются простыми типами (и строками), и их не так много.

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

Между прочим, 30 действий звучат как много, вы должны действительно посмотреть на сокращение этого путем совместного использования функций в разных действиях, это должно улучшить навигацию, насыщенность кода и печать стопы памяти.

UPDATE от комментариев

От ограниченной информации о вашем проекте, я предложил бы использовать базу данных в качестве хранилища данных (если таковые имеются), как вы не хотите быть кэширования полных сообщений SOAP в файлах, и количество записей 40+ может затруднить управление хранилищем предпочтений.

Однако, как я уже говорил ранее, вам необходимо рассмотреть сложность. При использовании базы данных вам нужно будет создать метод построения (возможно, своего рода ORM), отдельный для де-сериализации SOAP-объектов, поскольку технически вы будете иметь два отдельных сохраняемых формата данных.

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

Я несколько других стоит упомянуть при рассмотрении такого рода кеширования.

  • Как вы будете управлять кешем, его размер и целостность данных.
  • Когда вы будете кэшировать, как только вы десериализуете свои объекты SOAP? когда вы закончите с данными? и т. д.
  • Как решить, когда использовать кеш и когда попасть в сеть?
+0

Данные будут получены в формате SOAP. Данные не являются сложными, состоят из строк, целых чисел и булевых. Кроме того, я только планирую получить последние 40 записей, так как база данных может содержать 100 или даже тысячи. – harsimranb

+0

Что касается 30 видов деятельности, я наткнулся на это: http://stackoverflow.com/a/6236518/487940, и у меня сложилось впечатление, что 30 не будет слишком много. На данный момент я перерабатываю пользовательский интерфейс и пытаюсь использовать Tabs для уменьшения количества действий. – harsimranb

Смежные вопросы