Вот мое мнение.
Сокеты
- (+++) быстрее, чем WCF (особенно если вы используете UDP)
- (+) вы будете тратить меньше на оборудование в будущем, поскольку приложение с сокетами будет лучше масштабироваться
- (-) вы будете тратить больше времени на разработку
- (-) вы будете тратить большеденьги на разработку
- (-) вам нужно будет разработать собственный протокол или использовать достаточно близкий подходящий протокол
- (-) труднодоступный API
- (-) это будетможет быть затруднено для сторонних разработчиков
WCF
- (+) избежать каких-либо проблем с уровнем транспорта
- (+)простой в расширении API
- (+) это сэкономит вам время на разработку
- (+) простой в предоставлении сторонний API
- (+) вы будете тратить меньше денегпри разработке
- (-) он медленнее сокетов
- (-) вы будете тратить больше денег на аппаратное обеспечение, поскольку приложение с WCF будет иметь худшую масштабируемость
Неважно, какую сериализацию вы собираетесь использовать, WCF будет медленнее сокетов.
В любом случае, вы не собираетесь использовать «HipHop for PHP».Я думаю, ответ - создавать упрощенные клиентские и серверные приложения с использованием WCF.Загрузите его по максимуму (как вы предполагаете) с использованием различных привязок, сериализаций и т. Д. Если WCF может справиться с нагрузкой и имеет хороший резерв, то, я полагаю, вы можете использовать его.Если это не так - используйте сокеты.
Возможно, лучший способ использовать обе технологии.Разъемы, для которых важна производительность (, например, подключение игровых серверов друг к другу ), WCF для других частей (, например, отправка и получение сообщений чата ).
Я полагаю, что естьмного других аргументов в пользу обеих технологий.Но я думаю, что вопрос заключается в следующем: хотите ли вы получить его быстрее или проще в обслуживании.Является ли это приложение, где функции часто добавляются, или это приложение, где нагрузка будет расти в геометрической прогрессии.и т. д.