Разработка сервиса для потребления на нескольких мобильных платформах - PullRequest
2 голосов
/ 27 апреля 2010

Я строю и проектирую (в основном) интерфейс только для чтения для некоторых данных. Я буду использовать ASP.NET MVC для создания псевдо-спокойного API. Мне интересно, может ли кто-нибудь предоставить некоторые ресурсы для создания полнофункциональных клиентских приложений для различных мобильных платформ, iPhone, Android, Blackberry, Windows Mobile и т. Д.

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

Другими словами, какую форму будет быстрее всего внедрить на стороне клиента? Есть ли парсеры JSON для iPhone или Android? Я знаю, что есть парсеры .NET JSON, но не уверен насчет других платформ - это еще один формат, который может быть лучше? Или я должен придерживаться чистого XML и иметь дело с ним на каждой платформе по-разному?

Ответы [ 5 ]

1 голос
/ 27 апреля 2010

Вы можете создать службу REST WCF, которая предоставляет результаты в обоих форматах, json и xml, и в зависимости от устройства вы можете выбрать формат, который лучше соответствует возможностям устройства.Кроме того, это намного лучше, чем создание и ASP.MVC «псевдо-спокойного API».

Служба WCF будет выглядеть так:

[ServiceContract]
public interface IService
{
    [OperationContract]
    [WebInvoke(
        Method = "GET",
        ResponseFormat = WebMessageFormat.Xml,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "DoWork/xml/{ID}/{Filter}")]
    void DoWork(int ID, string Filter);

    [OperationContract]
    [WebInvoke(
        Method = "GET",
        ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "DoWork/json/{ID}/{Filter}")]
    void DoWorkJson(int ID, string Filter);
}

Вы можете найти хороший пример для созданияWCF Rest Service здесь.

0 голосов
/ 27 апреля 2010

Используйте Json, все мобильные платформы имеют парсеры Json. Для Android это, возможно, не самое эффективное решение, но, пожалуй, самое прагматичное.

Android изначально поддерживает XML, но не Json. Другими словами, я пытаюсь сказать, что телефоны Android оснащены парсером XML с аппаратным ускорением (в основном их собственный выделенный кусочек кремния), но в том, что касается анализа Json, в телефонах Android этого нет, поэтому они должны использовать свой процессор для этой работы. Теоретически это будет означать, что Android будет использовать больше циклов ЦП, больше энергии и, следовательно, больше батареи для анализа Json, чем для анализа XML. При этом, не попадайтесь в ловушку преждевременной оптимизации, скорее всего, любая разница, вероятно, будет незначительной для вашего сценария использования (и не поверьте мне на слово, просто используйте ваш профилировщик, как только ваше приложение законченный).

0 голосов
/ 27 апреля 2010

придерживайтесь чистого XML и разберитесь с ним на каждой платформе по-разному

Это действительно единственный путь вперед. Не существует волшебной кроссплатформенной платформы, и если бы она существовала, она все равно была бы заблокирована на iPhone .

0 голосов
/ 27 апреля 2010

Если у вас нет действительно веской причины использовать XML, используйте JSON. Подавляющее большинство ответов от веб-сервиса может быть адекватно описано с использованием JSON, и есть ряд библиотек (по крайней мере, на iPhone, я полагаю, что то же самое на Android и др.), Которые позволяют вам анализировать JSON Собственные структуры данных в 2-3 строки кода.

На платформе iPhone json-framework позволяет с легкостью анализировать JSON.

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

0 голосов
/ 27 апреля 2010

Я работал с разбором XML на iPhone. Если вы ищете DOM-парсер, KissXML - сторонняя библиотека, к которой я предлагаю вам обратиться. Его легко использовать, и производительность хорошая. Если вы ищете парсер, основанный на потоке, классы NSXMLParser в iPhone SDK подойдут. JSON считается более легким, чем XML, и, следовательно, более подходящим для мобильных устройств. Есть сторонняя библиотека для разбора JSON для iPhone. Вам нужно будет Google для них.

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