2010-09-14 2 views
2

Есть ли распределенная инфраструктура приложений (коммерческая версия тоже хорошо), которая поддерживает iPhone/iPad?Рамочная Рекомендация для разработки распределенных приложений для iPhone/iPad

Что я ищу в рамках:

  • позволяет мне сосредоточиться на логике приложения
  • мне не нужно закодировать «низкого уровня» сетевого программирования (я сделал это слишком много раз, что я не хочу делать это снова = р)
  • следует активно поддерживать (популярный бы неплохо)

В принципе, я могу затем развиваться быстрее.

Мы планируем разработать приложение для клиентского/серверного приложения TCP/IP в реальном времени, в котором есть много клиентов iPhone/iPad (30+), подключенных к одному серверу по локальной сети. Сервер, скорее всего, запустит Windows (если инфраструктура не поддерживает его).

Я смотрел вокруг и вижу: (? По-прежнему выглядит довольно сырой)

Я все еще решает, следует ли использовать Objective-C или MonoTouch , но склоняется к MonoTouch, так как мы получим платформу .NET и не будем привязаны к миру Mac.

Пожалуйста, не стесняйтесь, если я добавлю что-то, что не связано с моим вопросом --- Я новичок в мире iPhone/iPad.

+0

Ответ Пер Франци: Да, я ищу RPC-стиль. Кроме того, я никогда раньше не работал с POX или JSON, поэтому я не могу комментировать это. – sivabudh

+0

Хотелось добавить, что можно использовать protbuf-net для сериализации http://code.google.com/p/protobuf-net/ – sivabudh

ответ

2

Мы пользовались WCF/Monotouch с большим успехом - есть некоторые области f/work, которые не являются 100%, но для большинства случаев вы должны найти работу с WCF на monotouch ветерок.

Возможность совместного использования всех наших синхронизаций данных, моделей, тестов и т. Д. Между monodroid и monotouch и wm7 серьезно крута (с некоторыми работами - это легко возможно - вам нужно управлять несколькими файлами prj).

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

Использование SSL для связи с сервером - это PITA, но я думаю, что это больше похоже на то, как Apple справилась с этим.

+0

Может ли WCF/MonoTouch взаимодействовать с сервисами WCF Microsoft .NET? например Может ли приложение iPhone, написанное в Monotouch, взаимодействовать с машиной Windows с .NET framework? (Извините, если это глупый вопрос .. Я только недавно это сделал) – sivabudh

+1

Да - он может - вы создаете прокси-сервер, используя silverlight svcutil с переключателем noConfig и вставляете сгенерированный класс в свой проект monotouch - это очень просто - делать что-либо подобное в obj должно быть полным, нет, так как это просто потребует столько шума. – iwayneo

2

Вы должны быть более ясными в соответствии с вашими требованиями. Если вам нужна только сериализация объектов (обезвоживание/гидратация) через REST API, то все, что поддерживает POX или JSON, будет отлично работать для вас. Однако, если вам нужен вызов метода в стиле RPC, с аутентификацией, шифрованием/цифровой подписью, транзакциями и т. Д., Вам понадобится одна из тех фреймворков, которые вы указали выше.

Если вам нужен фреймворк, я лично склоняюсь к MonoTouch WCF, так как он дает вам возможность позже перемещать своего клиента на другие платформы (например, Windows Phone 7). Опять же, как вы сказали, сейчас это немного грубо, и если команда Mono в будущем решит, что у них нет ресурсов для инвестиций в ее обслуживание, вам может понадобиться перейти к другой структуре. Конечно, есть и недостаток, который вам нужно использовать MonoTouch для вашего приложения и не может использовать Objective-C. Конечно, с недавними изменениями в Соглашении с разработчиками iOS, это не так уж и важно, но это все равно нужно иметь в виду.

(Отказ от ответственности: Я работал в WCF команде Microsoft, поэтому я склоняюсь к самому продукту)

Другой вариант я бы пойти, было бы какао Распределенные объекты. Тем не менее, это было бы моим выбором, если сервер также работает на OS X. Я знаю, что Bonjour для Windows, но я сомневаюсь, что он оптимизирован для сценариев сервера, и я также не знаю, насколько богата реализация RPC от Apple поверх нее для платформы Windows. Поэтому я останусь с технологией Apple только в том случае, если я создам исключительно для платформы Apple.

Обратите внимание, что WCF и распределенные объекты предоставят вам функциональность в стиле RPC, но они не помогут вам в каких-либо конкретных сценариях. Если вам нужен/нужен еще более высокий уровень абстракции, например, вам нужна информация о присутствии или многопользовательский чат, вам все равно придется реализовать их самостоятельно. На данном этапе стоит взглянуть на рамки, которые предоставляют эти функции для вас. Примером может служить RakNet (который вы указали выше), который абстрагирует уровень удаленного доступа и создает дополнительные функции поверх него.

1

Вы можете использовать буферы протокола Google для реализации RPC, хотя в любом случае вам потребуется выполнить сетевое программирование для транспортировки ваших сообщений. Он поддерживает создание интерфейса для C++, Java, Python и Objective-C и .NET, поэтому вы можете создать один набор сообщений RPC и получить код для работы с ними практически для любой мобильной платформы. Транспортный уровень на ваших мобильных платформах вам придется реализовать самостоятельно.

http: // code.google.com/apis/protocolbuffers/ - основная страница Protobuf (C++, Java, Python) http: // code.google.com/p/protobuf-net/ - Protobuf .NET упоминается в одном из комментариев HTTP: // code.google.com/p/metasyntactic/wiki/ProtocolBuffers - Protobuf для Obj-C

1

вы можете использовать JSON Прикосновение + Vitche PHP Emission Framework, которая обеспечивает все стороны сервера вам нужно. Также вы можете использовать эту платформу для доступа к существующим службам SOAP (WCF, Axis и т. Д.).

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

  • Нет связанных вопросов^_^