Пользовательский RPC против WCF против .NET Remoting

Я написал простой класс RPC, который позволяет мне сериализовать и отправлять двоичные данные между настольным приложением .net и серверным приложением .net. Вкратце, клиент мог отправить:

Dim Message as new TCPMessage
Message.Handler = "NewUser"
Message.AddField("FirstName", "Paul")
Message.AddField("Photo", PhotoBytes)
Message.Send()

И сервер восстановит данные на другом конце:

Public Sub NewUser (Message As TCPMessage)
    Dim FirstName as string = Message.GetString("FirstName")
    Dim Photo() as Bytes = Message.GetBytes("Photo")
    ...
End Sub

Все это работает нормально для того, чем я занимаюсь в данный момент - это кажется довольно легким и производительным.

Я хотел бы знать, каковы плюсы и минусы использования .NET Remoting / WCF? Я мало что знаю об этих технологиях, но может показаться, что они намного более гибкие, с возможностью того, что они будут менее производительными и потребуют значительного обучения.

Исходя из критериев производительности, кривой обучения и с учетом того, что никто другой не будет поддерживать код, следует ли мне продолжать создавать небольшие внутренние приложения, используя мою схему DIY, или отказаться от нее как можно скорее для удаленного взаимодействия / WCF?

Изменить: производительность является ключевым моментом, клиентские приложения будут регулярно получать наборы данных из ~ 200000 строк (да, это абсолютно необходимо для получения такого количества данных). Все это работает только в локальной сети.


person Satellite    schedule 10.05.2011    source источник
comment
У меня нет абсолютно никаких данных, чтобы подтвердить это, но WCF предлагает большую глубину, но при этом очень легкий. Я был бы удивлен, если бы была значительная разница в производительности.   -  person Kirk Broadhurst    schedule 10.05.2011
comment
Спасибо, это было только предположение, что WCF будет медленнее. Я проведу небольшое тестирование производительности, когда узнаю больше о WCF.   -  person Satellite    schedule 11.05.2011
comment
Вы наконец использовали WCF? любые тесты производительности, спасибо   -  person Surjit Samra    schedule 02.11.2011
comment
В итоге я остановился на своем собственном протоколе, который полностью соответствует требованиям к производительности этого приложения. Однако у меня нет конкретных тестов по сравнению с WCF.   -  person Satellite    schedule 03.11.2011


Ответы (1)


Во-первых, .Net Remoting теперь устарел в пользу WCF, см. Действительно ли WCF заменяет. NET Remoting?

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

Я бы определенно использовал WCF для новых проектов. Могу ли я заменить существующее приложение на стабильное, производительное, созданное на заказ решение? Это зависит от степени изменения, недостатков существующего решения и потенциальных преимуществ, которые может принести wcf.

person stevenrcfox    schedule 04.01.2012