2014-11-10 2 views
1

Мне нужно реализовать службу печати, которая будет работать во внутренней сети (устройство Android также является частью сети).Мотивация использования WCF над простым TcpListener?

В настоящее время он реализуется TcpListener, который принимает запросы на соединение (в формате JSON), когда запрос получен, его поток считывается в строку и десериализуется с классом JsonConvert.

У меня сложилось впечатление, что использование большинства WCF должно быть предпочтительным для TcpListener для большинства операций, где производительность не является критичной, но верно ли это даже для таких простых сценариев?

Даже с TcpListener все, что мне было нужно, это просто получить поток запросов и десериализовать его, что не похоже на слишком много хлопот, должен ли я по-прежнему использовать WCF для этого?

ответ

3

WCF позволяет вашему коду оставаться сфокусированным на вашей компании логических, а не транспортных механизмов и сериализации/десериализации.

Теперь вам нужна ваша служба для приема TCP-соединений, десериализации полученных данных JSON в ваши объекты и передачи этих объектов в вашу бизнес-логику. Для аргументации вы затем решили добавить вторую услугу. Вы добавляете логику для анализа HTTP-заголовка и выбираете подходящий бизнес-метод для вызова. Для этой второй службы вам также необходимо поддерживать чтение (HTTP GET) и запись (HTTP POST). Через некоторое время вы осознаете, что пишете собственный HTTP-сервер.

Скажем, через год вы заключите сделку с другой компанией, которая хочет позвонить этой службе через SOAP или использовать очередь сообщений или какой-либо другой механизм. Вы хотите реорганизовать свой код? В теории WCF позволяет вам внести изменения в файл конфигурации, отображающий новую конечную точку.

WCF - это сложный зверь, а не тривиальный для изучения. Более свежие версии добавили несколько ярлыков, чтобы облегчить нашу жизнь. Для простой самообслуживающей службы JSON ее не так сложно настроить. Вот несколько вещей, чтобы прочитать, чтобы вы начали:

How to: Host a WCF Service in a Managed Windows Service

Create a REST service with WCF and consume it using jQuery

-1

В этом случае этого не было бы. WCF для SOAP в основном, и, хотя он очень расширяемый, он не очень подходит для JSON. Я считаю, что WebAPI - это технология Microsoft punt для обработки JSON, хотя я не вижу никакой реальной проблемы при подходе, который вы принимаете, при отсутствии проблем с безопасностью (управление идентификационными данными и т. Д.)

+2

Вы действительно должны прийти к 2014 г. Может быть, чтение http://www.codeproject.com/Articles/167159/How -to-create-a-JSON-WCF-RESTful-Service-in-sec помогает вам? – TomTom

+1

Вау, это было полезно. Что тогда неточно в моем ответе? Почему WCF является лучшим выбором по мере того как OP спрашивает? – ojf

+0

Я полностью не говорю, что это ЛУЧШИЙ выбор. Это, однако, не «плохо подходит». – TomTom

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