Использование MSMQ - System.Messaging по сравнению с WCF - PullRequest
7 голосов
/ 21 августа 2009

Мне нужно портировать приложение VB 6.0 на VB.Net (Framework 3.5). Приложение интенсивно использует MSMQ. Я пытаюсь выяснить, каковы преимущества использования WCF по сравнению с хорошим оле System.Messaging. Есть ли какие-либо потенциальные демонстраторы при переходе с System.Messaging?

Ответы [ 6 ]

7 голосов
/ 21 августа 2009

Мне кажется, эта цитата с веб-сайта " Motley Queue " ("сеть": отличная ссылка!) Лучше всего суммирует:

* Модель программирования WCF сосредоточена вокруг ваших бизнес-операций. С его помощью вы можете перестать управлять своими транзакциями сообщений, устанавливать свойства сообщений, искать сообщения в очереди, проверять NACKS, повторять сообщения и т. Д. Вместо этого вы можете начать думать о мире с точки зрения бизнес-операций (например, CreatePurchaseOrder) и сосредоточиться на вашей бизнес-логике. Оставьте скуку WCF. *

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

Мой голос за WCF! : -)

Марк

3 голосов
/ 21 августа 2009

Я как-то не согласен с тем, что WCF легче / чище, чем System.Messaging, который, давайте посмотрим правде в глаза, имеет довольно простой API (в целом) и относительно прост в использовании, если это все, что вас волнует. Тем не менее, у WCF есть некоторые приятные вещи, но это не так просто.

Что касается того, обнаружите ли вы какие-либо проблемы, ну ... это во многом зависит от того, как ваше приложение VB в настоящее время использует MSMQ и какие данные оно отправляет. Вы будете использовать привязку MsmqIntegrationBinding, которая в некоторой степени помогает, но вам, возможно, придется воспользоваться некоторыми приемами для успешной обработки десериализации сообщений, если ваше приложение VB не отправляет сообщения в формате, с которым WCF может справиться из коробки.

3 голосов
/ 21 августа 2009

Вам следует посетить веб-сайт Motley Queue. Существует хорошее сравнение System.Messaging и WCF. WCF будет намного чище и проще в использовании.

2 голосов
/ 21 августа 2009

Я лично люблю MSMQ, и с этим согласился бы.

Основным «уловкой» для меня было то, что вы ограничены 4 мг на сообщение. Если вы сериализуете большой граф объектов, это проблема, но ее тривиально исправить, просто сначала сериализовав на диск и отправив имя файла.

MSMQ может не получить «новых функций», как прокомментировал один из других авторов, но, по-моему, он стабильный, очень масштабируемый и обладает всеми необходимыми мне функциями.

1 голос
/ 21 августа 2009

Переход на WCF дает вам четкий путь вперед. Хотя я сомневаюсь, что System.Messaging куда-то движется (см. System.Runtime.Remoting), в WCF будет происходить новая разработка, и она даст вам возможность перейти на другие технологии по мере их появления. Это освобождает вас от привязки к конкретной транспортной реализации.

Модель программирования WCF также очень чистая и приятная.

0 голосов
/ 03 мая 2016

WCF с MSMQ с использованием привязки Net.Msmq решает множество сложностей, под которыми вам не нужно заботиться.

-Это легче реализовать (требуется только одна настройка времени). Следуйте этому посту, чтобы понять процесс настройки WCF и MSMQ с использованием привязки Net.Msmq Настройка MSMQ с WCF с использованием привязки Net.Msmq

-Попытки на повтор и отравление могут быть реализованы путем внесения всего лишь нескольких изменений в конфигурацию. Хорошая статья для настройки очередей повтора и отравления Обработка сообщений об отравлении и повторных попытках с MSMQ с использованием привязки WCF Net.Msmq

-Если у вас несколько подписчиков службы, одна и та же служба может быть размещена по нескольким протоколам. создать несколько конечных точек для http, net.Msmq.

...