Вы должны написать:
setField(a.b, &A::B::e, m_enum);
вместо
setField(a, &A::B::e, m_enum);
Зависит, если Вы связываетесь с удаленными наборами данных. Если бы Вы не набор данных, связанный затем, SOAP, вероятно, был бы хорошим выбором. Или, то, что я сделал, является записью мой собственный протокол, который подобен SOAP по своей природе. Это было сделано, прежде чем SOAP был стандартным, и я рад, что сделал - это дает Вам способность управлять большим количеством потока данных. Это - учитывая, что, если у Вас есть плохая возможность соединения затем, Вы будете проводить время, поддерживая ее. Очень хорошо, если это - Ваш собственный код, Вы поддерживаете по сравнению с необходимостью ожидать на поставщике. (Хотя KBM и R.E.M, как известно, являются довольно хорошими поставщиками.)
Личное сообщение: 700 пользователей в приложении графического представления документов по плохой возможности соединения походят на путаницу. Потратьте деньги на обновление возможности соединения, поскольку это будет более дешево в конечном счете.
И kbmMW и SDK RO предлагают двоичный формат, который более компактен, чем формат SOAP, особенно Вы работаете с документами.
RO sdk, кажется, предлагает больше инструментов GUI для помощи Вам делающий Ваши сервисы.
Также посмотрите на RealThinClient SDK, это - легкая платформа дистанционной работы.
Но что когда-либо платформа, Вы идете с, Ваш дизайн работы, сделает его быстро или медленный, у меня есть некоторые приложения, работающие над медленными строками 128 КБ, и это работает прекрасное без любого пользователя, жалуются, но я не делаю большой передачи для файлов.
Одна вещь помнить... не число пользователей, но количество того, что они использовали ресурсы в то же самое время, когда будет проблема. Попытка разработать Ваше приложение "сервер, не сохраняющий состояние", если вообще возможный, это позволит большую гибкость в долгосрочной перспективе, если Вы найдете, что необходимо добавить больше серверов к пулу для поддержки клиентской базы. Самая твердая вещь о n-tier масштабируется вне первого сервера... планируют это от запуска. Каждый запрос ничего не должен знать о предшествующем запросе..., или по крайней мере запрос должен иметь способ передать контекст, таким образом, сервер может искать его в таблице сессии или чем-то.
Лично, я рекомендовал бы RemObjects. Я использовал его с хорошими результатами.
Я не знаю, является ли это самое лучшее / самый эффективный (довольный, что Вы задали этот вопрос!), но у меня был хороший w/RemObjects SDK результатов + DataAbstract. Последний сделал большую часть деталей инфраструктуры менее включенной, который был полезен. Все еще реализовывая, но пока неплохо.
Если Вы действительно будете хотеть пойти использование "низкой пропускной способности" Сокеты BSD API то - это даст Вам полный контроль над тем, что отправляется, и там можно отправить такую небольшую информацию, как Вы хотите. Конечно, затем необходимо будет реализовать все уровни сами, но эй - это - все еще опция :D