Во-первых, у вас будут проблемы с разной активацией, потоковыми моделями, буферами, кадрированием, безопасностью и сериализацией, по крайней мере, в интеграции или в ручном режиме. Это типично для любых UDP/TCP или конфигурационных/атрибутов, работающих на любом языке или в среде. И по-прежнему потребуется настройка в соответствии с потребностями сервера или клиента, простая природа огромных возможностей в работе ввода-вывода.
Полностью согласен, что WCF слишком раздута и намного медленнее по сравнению с .NET Remoting (что медленнее, чем управляемый код сокета, который намного медленнее, чем собственный код iocp) для ручного свернутого кода .. Но это дополнительная работа и если вы справились с вышеуказанным в общей библиотеке обобщений (не более мощные шаблоны, которые усложняют работу в .NET, т. е. вам нужно создавать типы нечетными способами +, обязательно использовать интерфейс), чем вы сделали хорошо, man-year с некоторой сложной сантехникой a la message-queueing (это не невозможно, но imho и ретроспектива никогда не стоит делать «в общем» ..).
Альтернативы - это MSMQ, что-то MS все чаще ставит на карту больше своего программного обеспечения или полуподобные биты с открытым исходным кодом, которые никогда не удовлетворяют полностью требуемой модели. Tibcos, ActiveMQs, вы это называете. Даже если идти на более низкий уровень, лучше всего считать C++ boost :: asio, и, хотя он считается верхушкой, как и все, что там не подходит, все это не подходит. И это довольно замечательный дизайн, поэтому я буду следить за потенциальными тратами времени.
В .NET Я бы сначала принял любую 50-портовую службу MS, которая нажимает «сегодня», и если не делать «еще один похожий код» и искать аналогичные концепции для оснащения вашего инструментария по линии, когда он снова появляется (как каждый новый I/O lib или framework делает каждые 5 лет или около того).
hmm звучит как ниша ... – Mark
В той мере, в какой WCF пытается «решить любую проблему», уверены ли вы, что она также не решает вашу проблему? Вы рассматривали использование привязок net.tcp и двоичной сериализации? –
WCF действительно зверь. Сказав это, есть много вводных учебников, многие из которых сосредоточены на простых задачах, таких как тот, который вы пытаетесь, - это действительно не так сложно в WCF, если вы не хотите делать какую-то причудливую конфигурацию или связь между сервером и клиентом имеет определенные особенности. – Noldorin